我一直在过滤一个日志条目列表,现在已经接近完成了。
我想知道是否有可能通过$.ajax()异步更新当前视图的模型。
我目前让$.ajax()正常工作,但是它返回整个页面的超文本标记语言,而不是局部视图或模型本身。
有没有人知道一种简单地在当前视图上更新模型的方法?
发布于 2013-06-06 05:45:49
你必须以json格式返回模型,并使用js模板功能来替换dom中服务器呈现的html。- WestDiscGolf
以上就是解决方案,所以我将保持它的简单性,并使用更传统的方法。
发布于 2013-06-06 05:47:00
这个概念并没有真正的意义。一旦页面被渲染,这个模型就不再存在了,直到它在接下来的POST中被重新实例化(假设它被重新实例化,即你的控制器操作接受了相同类型的参数)。同时,它只是表现为具有name属性的表单字段,这些属性与模型的属性相对应。
但是,您可以动态创建表单域,当表单发布时,这些表单域(如果可能)将再次映射回模型属性。
创建一个字段,使其name属性与模型属性的名称相匹配:
<input type="hidden" id="hdnMyProperty" name="MyProperty" />然后使用jQuery填充字段的值:
var property = /* Your returned value here */;
$('#hdnMyProperty').val(property);有几种常见的方法可以实现这一点:
JsonResult的控制器操作发出AJAX请求,并在您的Javascript中动态创建表单域(可能-正如前面提到的-利用像Knockout).PartialViewResult的控制器操作,并将返回的标记动态插入到适当的位置。当您发出下一个post请求时,模型绑定器将尝试将其映射到新实例化的模型中的适当属性。
发布于 2013-06-06 05:45:48
您可以简单地使用Knockout。在这种情况下,不需要重新发明轮子。
https://stackoverflow.com/questions/16950378
复制相似问题