我一直在努力过滤日志条目列表,而且我已接近完成。
我想知道是否可以通过$.ajax()
异步更新当前View的模型。
我目前正在使用$.ajax()
,但它会返回整个页面的HTML而不是局部视图或模型本身。
有人知道在当前视图中简单更新模型的方法吗?
答案 0 :(得分:1)
您必须以json格式返回模型并使用js模板 在dom中替换服务器渲染的html的功能。 - WestDiscGolf
以上是解决方案,所以我会保持简单并使用更传统的方法。
答案 1 :(得分:1)
这个概念并没有多大意义。一旦呈现页面,该模型就不再存在,直到它在以下POST上重新实例化(假设 重新实例化,即您的控制器操作接受相同类型的参数)。与此同时,它只是表现为具有name
属性的表单字段,对应于 模型的属性。
但是,您可以动态创建表单字段,以便在发布表单时(如果可能)再次映射回模型属性。
创建一个字段,其name
属性与您的模型属性的名称匹配:
<input type="hidden" id="hdnMyProperty" name="MyProperty" />
然后使用jQuery填充字段的值:
var property = /* Your returned value here */;
$('#hdnMyProperty').val(property);
有几种常见的方法可以实现这一目标:
JsonResult
并在您的Javascript中动态创建表单字段(可能 - 正如已经提到的那样 - 利用Knockout之类的东西)。PartialViewResult
的控制器操作,并在适当的位置动态插入返回的标记。当您发出下一个发布请求时,模型绑定器将尝试将其映射到新实例化模型中的相应属性。
答案 2 :(得分:0)
您只需使用Knockout即可。在这种情况下,无需重新发明轮子。