我想在@model List<Proj.xx.MyClass>
中使用HTML帮助器创建强类型文本框。但是我无法访问MyClass
的属性。
任何人都可以帮助我解决问题吗?
public class MyClass
{
public string Name { get; set; }
public string AddNote { get; set; }
}
查看
@model List<Proj.xx.MyClass>
@foreach (var item in Model)
{
<tr>
<td>
<a data-toggle="modal" data-target="#AddNote">
@Html.DisplayFor(modelItem => item.Name)
</a>
</td>
</tr>
}
<div class="modal fade" id="AddNote" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
@Html.TextBoxFor(m=>m.AddNote)
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" id="reset" data-dismiss="modal">Close</button>
<button type="submit" id="submit">Submit</button>
</div>
</div>
</div>
</div>
答案 0 :(得分:3)
您可以创建一个componentDidUpdate
方法,该方法基于ChildActionOnly
的实例返回模态的部分视图
MyClass
[ChildOnlyAction]
public PartialViewResult _Note()
{
MyClass model = new MyClass();
.... // set any defaults if required
return PartialView("_Note", model));
}
部分
_Note.cshtml
然后在主视图中,使用
@model MyClass
<div class="modal fade" id="AddNote" role="dialog">
....
<div class="modal-body">
@Html.HiddenFor(m => m.Name)
@Html.TextBoxFor(m => m.AddNote)
</div>
....
</div>
或
@Html.Action("_Note") // assumes its in the same controller
请注意,我为@{ Html.RenderAction("_Note"); }
属性包括了一个隐藏的输入,假设您也希望也回发该值,以使您知道该注释与哪个Name
相关联(尽管您确实应该也有一个ID属性)。另外,您的html还应该包含一个MyClass
元素以提交修改后的值。
然后,假设您正在编辑现有记录,则还需要一些JavaScript才能将当前值分配给输入。