javascript - 将 JavaScript 函数中的数据作为对象参数传递给 @Html.Action() C#

标签 javascript c# html asp.net razor

这就是我正在尝试做的事情。我希望能够调用 html 操作并将一些数据作为对象参数传递。唯一的问题是这些数据需要从 JavaScript 函数返回。

这是我正在尝试做的事情:

@Html.Action("someAction", "someController", new { passedData = GetDropDownData() })

<script>
    function GetDropDownData() {
        var data = "test";
        return data;
    }
</script>

基本上,我试图将一些下拉数据从控件传递到使用 @Html.Action() 渲染的部分 View 。我希望能够以某种方式将此字符串传递给部分 View ,所以我想我可以使用 JS 来拉取下拉数据并在渲染页面时将其作为对象参数返回?

如果您有任何建议或更好的方法来解决此问题,请告诉我。

谢谢!

最佳答案

按照您的方式这是不可能的,因为 razor View 是在服务器端编译的,而 javascript 是客户端。因此, View 已经编译,而 javascript 在运行时运行。一种方法是使用 ajax 将变量作为查询参数或正文值从 javascript 传递到 Controller 中的操作。您可以通过创建按钮或链接来实现这一点:

<a href='#' id='clickMe'>Click me</a>

并连接 jQuery 来完成这项工作:

<script>
$(document).ready(function(){

   $('#clickMe').click(function(){

      $.ajax({
         type: "POST",
         url: '@Url.Action("Action", "Controller")',
         data: {
            passedData: GetDropDownData()
         },
         success: function(response){
             $('#placeholderForPartialView').html(response);
         }
      });
   });
});
</script>

它看起来像这样,具体取决于您的方法(GET 或 POST)类型。 这里我假设您返回 Partial view 作为结果并替换 #placeholderForPartialView 的内容div 与返回的 View 。如果我错了,请纠正我。

关于javascript - 将 JavaScript 函数中的数据作为对象参数传递给 @Html.Action() C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56877339/

相关文章:

javascript - 如何使用 Jest 解决模拟函数内的外部 promise ?

c# - .NET MAUI Shell - 导航后显示汉堡包图标

javascript 未运行。 Firebug 说 "reload the page to get source for: ..."

html - 如何让 flex box 在 safari 中工作?

javascript - 在 Javascript 中,字典理解或对象 `map`

javascript - Google 登录 gapi undefined

c# - 如何将 sql union 转换为 linq

html - 如何在将鼠标悬停在 CSS 上时仅在链接上显示下划线

javascript - 如何判断运行browserify的gulp任务何时完成?

c# - 将标签绑定(bind)到 "variable"