Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从OnChange事件调用ActionResult[MVC4]_C#_Javascript_Jquery_Asp.net Mvc 4_Razor - Fatal编程技术网

C# 从OnChange事件调用ActionResult[MVC4]

C# 从OnChange事件调用ActionResult[MVC4],c#,javascript,jquery,asp.net-mvc-4,razor,C#,Javascript,Jquery,Asp.net Mvc 4,Razor,我知道,用JQuery或Javascript编写函数可以做到这一点,但考虑到MVC4的精巧程度,似乎应该通过在HtmlHelper的HtmlAttributes中添加正确的字符串来非常简洁地实现这一点 我可能遗漏了一些非常简单的东西,所以如果我问的是显而易见的问题,请原谅我 以这种情况为例: 您有一个正在工作的MVC4应用程序,您希望按照以下方式修改它 您希望在控制器中调用ActionResult来修改页面内容,以响应用户更改复选框的值 复选框位于表单中,但您不希望提交表单,因为这将导致进行其他

我知道,用JQuery或Javascript编写函数可以做到这一点,但考虑到MVC4的精巧程度,似乎应该通过在HtmlHelper的HtmlAttributes中添加正确的字符串来非常简洁地实现这一点

我可能遗漏了一些非常简单的东西,所以如果我问的是显而易见的问题,请原谅我

以这种情况为例:

  • 您有一个正在工作的MVC4应用程序,您希望按照以下方式修改它

  • 您希望在控制器中调用ActionResult来修改页面内容,以响应用户更改复选框的值

  • 复选框位于表单中,但您不希望提交表单,因为这将导致进行其他验证,最好在用户准备提交之前进行验证

  • 您希望将模型传递给ActionResult,就像提交一样

  • 页面更改无法在客户端完成,因为将生成新模型

  • 我曾尝试将$.Post放入复选框的HtmlAttributes中,这会将控制指向ActionResult,但我无法解决如何在不编写函数的情况下传递模型。考虑到MVC的所有其他功能都是为了以非常直观的方式传递模型而设置的,我觉得必须有一种干净的方法来做到这一点。。。有吗

    非常感谢

    将表单序列化()并发送数据;MVC模型绑定器应完成其余工作:

    $.post('@Url.Action("Bar", "Foo")', 
        $('#myForm').serialize(), 
        function(data) { /*do something with the response*/ });
    

    初始页面更改了多少?通过从部分视图中获取HTML片段并替换/附加结果到当前页面中,您可以做到这一点吗?嗨,ic,是的,这可能是更新页面的一种方式,但我还没有遇到如何激活actionresult的问题吗?actionresult需要检查模型的当前状态,以便决定要采取的操作…您不能执行类似于
    $.post('@Url.action(“Bar”,“Foo”),$('#myForm').serialize(),函数(data){/*对响应做点什么*/})?MVC应该识别传入的JSON并从中填充您的模型(我认为)很好,是的,可以,非常感谢!