Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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
Ajax表单作为局部视图?或者只传递json格式的数据?_Ajax_Asp.net Mvc_Jquery_Asp.net Mvc 4 - Fatal编程技术网

Ajax表单作为局部视图?或者只传递json格式的数据?

Ajax表单作为局部视图?或者只传递json格式的数据?,ajax,asp.net-mvc,jquery,asp.net-mvc-4,Ajax,Asp.net Mvc,Jquery,Asp.net Mvc 4,我正在为我的任务寻找最合适的解决方案 我有一个显示数据行的网格 我决定使用ajax和弹出模式表单更新特定行的数据 但是我无法决定我的ajax是否应该返回包含填充数据的表单的部分视图,还是应该只返回json并将数据值注入现有的(隐藏的)弹出表单 使用json发送的数据更少(而不是完整的html格式) 标记(只是数据),但我需要手动将数据注入表单。我 需要用javascript“准备表单” 使用部分视图,我可以在显示表单时获得完全的服务器支持 (我是说razor),我可以更轻松地写出复杂的条件,但

我正在为我的任务寻找最合适的解决方案

我有一个显示数据行的网格

我决定使用ajax和弹出模式表单更新特定行的数据

但是我无法决定我的ajax是否应该返回包含填充数据的表单的部分视图,还是应该只返回json并将数据值注入现有的(隐藏的)弹出表单

  • 使用json发送的数据更少(而不是完整的html格式) 标记(只是数据),但我需要手动将数据注入表单。我 需要用javascript“准备表单”

  • 使用部分视图,我可以在显示表单时获得完全的服务器支持 (我是说razor),我可以更轻松地写出复杂的条件,但是 存在服务器开销,因为它需要计算视图 每一次

让我们面对一个简单的问题:表单输入根据用户角色有条件地可见。使用ajax返回部分视图(表单)非常简单。我认为用js编写这篇文章可能非常容易出错

任何关于这个问题的帮助都将不胜感激


谢谢

这真的取决于你和你想如何处理它

  • 如果使用JSON,那么代码库中会留下一个休眠的弹出窗口或模板,等待实时数据填充。但是,您可以完全控制表单在继续/退出时的处理方式
  • 如果返回一个视图,可以使用razor填充它,并将UI保留在相应的
    ~/Views
    目录中。但是,您现在将代码保留在视图中,而不是页面上,这可能会导致一些“黑客”行为,使工作流程在调用页面的上下文中运行
另一种选择可能是使用把手或击出物(取决于你想要得到的东西有多复杂)。但根据您所提到的,将所有内容保留在页面上并在后台使用JSON帮助程序来提供/保存信息可能同样容易