我的班级和视图模型,
public class MyClass {
[Key] public int Id {get;set;}
public name {get;set;} ....etc.
}
和
public class MajorViewModel {
[key] public string id{get;set;}
public List<MyClass> myClass {get;set;}
...etc;
}
在控制器中
public ActionResult viewDetail() {
MajorVeiwModel mv = new MajorViewModel()
...
..
return View(mv);
}
儿童部分视图
@model namespace.MyClass
<div> @html.DisplayNameFor(model=>model.id)
<div> @html.DisplayFor(model=>model.id)
....and tens of other properties..
在视图中,我有
@model namespace.MajorViewModel
<div> @html.DisplayNameFor(model=>model.id)
@html.DisplayFor(model=>model.id) </div>
@for(var I=0; I< Model.myClass.count(); i++)
{
<div>@Html.DisplayFor(model => model.myClass[i].id)
<a href="#" id="displayId" data-bind: @Model.myClass[i]) <==not sure how to pass data
}
<script>
$("#displayId").click(function(){
alert(this.name); <== how to access MyClass[i].name for respective row for which it was clicked.
var resultDiv = $('<div id="childView"></div>');
var htmlContext = $(this).parent();
//somehow get the model selected and create html for child
var result = ??? <== fill it with child partial view html
//TODO ...FILL THE result
resultDiv.html(result);
alert(resultDiv);
});
</script>
在上面的代码中,我试图绑定/链接每一行的数据但不确定如何绑定,这样在链接点击时,在JavaScript中我可以访问所有数据(MyClass [i]等数十个属性)。用户点击并显示的第i个实例的名称等)。 我是否需要序列化数据,但如何为每行链接?没有桌子。使用@ Html.HiddenFor。
答案 0 :(得分:0)
而不是&#34; for&#34;声明使用&#34; foreach&#34;声明。
@foreach(var item in Model.myClass)
{
<div>@Html.DisplayFor(m => item.id)
<a href="#" id="displayId" data-name="item.name" class="clickfunction" )>item.Name </a>
}
<script>
$(".clickfunction").on('click',function(e){
e.preventDefault();
var name = $(this).data("name")
alert(name);
});
</script>