MVC3 JQuery部分视图Div更新
以下是我的设想: 我从viewModel创建了以下菜单MVC3 JQuery部分视图Div更新,jquery,asp.net-mvc-3,html,partial-views,Jquery,Asp.net Mvc 3,Html,Partial Views,以下是我的设想: 我从viewModel创建了以下菜单 <ul> <li id="1" class="menu-item-click">Item 1</li> <li id="2" class="menu-item-click">Item 2</li> <li id="3" class="menu-item-click">Item 3</li> </ul> })) 我的问题是
<ul>
<li id="1" class="menu-item-click">Item 1</li>
<li id="2" class="menu-item-click">Item 2</li>
<li id="3" class="menu-item-click">Item 3</li>
</ul>
}))
我的问题是,我是否应该存储要加载的局部视图的信息
我可以将其作为自定义属性存储在列表项(li)中。(似乎不是最好的方式)
我希望有一种方法可以将列表项的id发送到一种“主”控制器,该控制器可以返回正确的局部视图
任何帮助/指导都将不胜感激你可以考虑在每个Li上使用这个。我知道你提到过,你不认为这是最好的选择,但我认为它最终会让事情变得简单明了。我更喜欢将数据附加到元素,它被认为是一种语义方式,可以使用元素存储数据,而不必与JS代码混在一起,而且它被认为是从HTML5开始的标准做法
<ul>
@foreach (MyView item in Model.MyViews) {
<li id="@item.id" class="menu-item-click" data-view="@item.href">Item 1</li>
}
</ul>
$(".menu-item-click").click(function () {
var view = $(this).data('view');
});
@foreach(Model.MyViews中的MyView项){
- 项目1
}
$(“。菜单项单击”)。单击(函数(){
var view=$(this.data('view');
});
我不确定您想要存储什么类型的信息以及存储什么,但是如果您使用基于DOM的jQuery和its,存储信息的一个很好的方法是$.data()
然后,打电话:
$.data('#someElement','theKey')
//returns "some data goes here"
您还可以在其中存储JSON内容,如:
$.data(document.body,'data',{name:'Jim smith', email:'xxx@xxx.com'});
如果要存储的数据基于元素,我会这样做。如果是任意数据,可以将其存储在localStorage中。如果这是您需要的更多内容,请告诉我,我也可以写一个例子。如何获得部分视图链接?您的模型是否包含
IEnumerable
?是。MenuItem实体包含Id、MenuName和menuview,这是我的第一个想法。使用html5数据属性。只是想知道是否还有其他我没有想到的方法。是的……这也是我的想法。
$.data('#someElement','theKey')
//returns "some data goes here"
$.data(document.body,'data',{name:'Jim smith', email:'xxx@xxx.com'});