我的项目中有几个具有相同属性的类。示例:PersonID。
此属性链接到Person表,我创建一个带有两个按钮的选择框。而不是对具有PersonID的视图执行此操作:
<div class="col-md-12">
@Html.LabelFor(m => m.PersonID) @Html.ValidationMessageFor(m => m.PersonID)
<div class="input-group">
@Html.DropDownList("PersonID", (SelectList)ViewBag.ListPerson, String.Empty, new { @class = "form-control" })
<span class="input-group-btn">
<button class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
</span>
<span class="input-group-btn">
<button id="selectItem" class="btn btn-warning"><span class="glyphicon glyphicon-check"></span></button>
</span>
</div>
想要使用Partial:
@Html.Partial("~/Views/Frame/Person.cshtml", Model)
我如何在Partial中拥有一个模型,并使用View调用Partial的模型,该模型可以是不同的类和相同的属性PersonID,而不必使用相同的HTML制作更多的Partial,或者不想使用@model Project.Models.User
,并使用通用。
@model Project.Models.User
<div class="col-md-12">
@Html.LabelFor(m => m.PersonID) @Html.ValidationMessageFor(m => m.PersonID)
<div class="input-group">
@Html.DropDownList("PersonID", (SelectList)ViewBag.ListPerson, String.Empty, new { @class = "form-control" })
<span class="input-group-btn">
<button class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
</span>
<span class="input-group-btn">
<button id="selectItem" class="btn btn-warning"><span class="glyphicon glyphicon-check"></span></button>
</span>
</div>
</div>
答案 0 :(得分:2)
你可以采取以下两种方式之一(可能有更多方法,但这些方法可能最常见)
选项1 - 接口
首先创建一个接口类,例如:
public interface IPerson
{
int PersonID { get; set; }
}
现在,对于每个拥有人员ID的实体,让它实现该界面:
public class SomeEntity : IPerson
{
public int PersonID { get; set; }
//snip
}
现在视图可能如下所示:
@model YourNamespace.IPerson
The person ID is @Model.PersonID
选项2 - 继承
您的基类:
public abstract class PersonBase
{
public int PersonID { get; set; }
}
实体从基地继承如下:
public class SomeEntity : PersonBase
{
//snip
}
您的观点几乎完全相同:
@model YourNamespace.PersonBase
The person ID is @Model.PersonID