【问题标题】:Pass data from JavaScript function as an object parameter to @Html.Action() C#将 JavaScript 函数中的数据作为对象参数传递给 @Html.Action() C#
【发布时间】:2019-07-03 20:14:51
【问题描述】:

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

这是我想要做的:

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

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

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

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

谢谢!

【问题讨论】:

    标签: javascript c# html asp.net razor


    【解决方案1】:

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

    &lt;a href='#' id='clickMe'&gt;Click me&lt;/a&gt;

    并连接 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 视图作为结果并将 #placeholderForPartialView div 的内容替换为返回的视图。如果我错了,请纠正我。

    【讨论】:

      猜你喜欢
      • 2021-04-15
      • 1970-01-01
      • 2012-02-27
      • 2015-06-09
      • 2019-08-29
      • 2020-06-10
      • 1970-01-01
      • 2018-02-23
      • 2012-05-30
      相关资源
      最近更新 更多