Javascript asp.net mvc ModelState有效-有效地处理假返回

Javascript asp.net mvc ModelState有效-有效地处理假返回,javascript,jquery,asp.net-mvc,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 4,我和一些同事正在用.NETMVC4开发CRUD应用程序。根据客户的选择,通过jQuery可以呈现大量动态内容。此解决方案的问题是,如果ModelState.IsValid变为false,我们必须进行大量隐藏输入以传递附加数据,然后使用模型和一些ViewBag重新渲染视图 Q1:动态呈现事物并依赖隐藏的输入而不是利用会话的优势(或是优势)是一种不好的做法吗 问题2:如果我们不使用表单提交方法,而是通过jQuery使用ajax请求,并通过JSON响应(我认为这对于整个应用程序来说是一个定义良好的对象

我和一些同事正在用.NETMVC4开发CRUD应用程序。根据客户的选择,通过jQuery可以呈现大量动态内容。此解决方案的问题是,如果ModelState.IsValid变为false,我们必须进行大量隐藏输入以传递附加数据,然后使用模型和一些ViewBag重新渲染视图

Q1:动态呈现事物并依赖隐藏的输入而不是利用会话的优势(或是优势)是一种不好的做法吗

问题2:如果我们不使用表单提交方法,而是通过jQuery使用ajax请求,并通过JSON响应(我认为这对于整个应用程序来说是一个定义良好的对象)呈现错误,这难道不是更有效吗


问题3:与问题2相关-传输JSON(key value==ModelProperty-ErrorText)会比重新提交整个视图并通过“连线”发送更快吗?

关于你的问题2和3:表单和ajax并不是相互排斥的:如果你担心在提交表单时只呈现页面的一部分,您应该使用局部视图和

@using (Ajax.BeginForm(...
而不是

 @using (Html.BeginForm(...

这就是mvc的做法。

听起来你是在征求意见,而不是答案

如果是我,我会永远把自己关在一个角落里,考虑用这个会话来做这样的事情:)。但更严重的是,我只会使用AJAX。让javascript在提交时收集您的值,或者将其绑定到javascript视图模型(例如,通过knockoutjs),然后将值作为结构良好的对象提交给服务器。这听起来似乎比听起来更一致


就我个人而言,除了简单的简表单,我不使用表单帖子;简单的键值对有意义。当我开始感觉到表单结构中的复杂性时,或者当我已经开始使用javascript时,我就开始使用ajax。特别是如果表单必须在用户填写时更新(例如,返回服务器以重新填充级联下拉菜单),那么我将使用knockoutjs将表单绑定到模型,当用户准备提交时,我的模型生成了一个结构良好的请求对象,并将其发送到服务器,服务器会自动反序列化为.NET对象,并从此一帆风顺。根据我的经验,这确实增加了更多的编码和技术复杂性。但最终,它解决的问题比它产生的问题多,通常也会带来更好的用户体验。

“动态渲染”发布了一些代码示例!视图的动态内容是如何加载/呈现的,是否有模型支持等。最好使用隐藏输入,因为它们代表特定页面的状态。我不明白你说的是会话,但如果你使用会话,有很多机会搞砸了…例如,你将Id放入下一页的会话-'/home/index?Id=1'。。。如果用户在一个新选项卡中打开“/home/index?id=2”,那么您的会话将有值2。我希望您理解