我需要将一些数据从我的控制器传递到我的视图。 jQuery将使用这些数据来做一些事情。数据是一个短字符串。我可以把它放在一个隐藏的文本框中,并使用jQuery访问该文本框的值。我还可以在数据关注的html元素上放置数据属性。我想知道什么是最好的方式。
要说明我必须做出这个选择的特定情况:我有一个通用的局部视图,需要进行ajax调用来更新视图上的一些数据。但是,ajax调用的目标取决于局部视图的上下文。因此,我将链接传递给局部视图的视图模型。我在哪里存储这些数据供jQuery访问它?
我觉得数据属性在某种程度上更好,因为我觉得隐藏输入字段的目的更多地是将信息与表单的其余部分一起发布。
对此有普遍的共识吗?
提前致谢。
答案 0 :(得分:4)
如果我打算通过表单将数据发送回服务器,我只会使用隐藏的表单输入。如果这不是一个要求,使用数据属性可以更简单。它不需要表单,您可以通过jQuery(或纯JavaScript)从相关元素的事件处理程序更轻松地访问该值。
答案 1 :(得分:2)
使用模型并将此模型传递给视图。该模型将包含所有必要的数据。然后利用这些数据为某些DOM元素生成HTML5 data-*
属性,您可以不引人注意地进行AJAXify。例如:
<div id="someDiv" data-remote-url="@Model.SomeModelPropertyContainingTheUrl"></div>
然后:
var url = $('#someDiv').data('remote-url');
...
如果您已经在页面上有一个表格,您将成为AJAXifying,则可以使用此表单的action
属性,如果值不同,则可以使用隐藏字段。