@HTML.Partial 对不同 class 中的相同 属性 使用通用 class
@HTML.Partial use generic class for the same property in different classes
我的项目中有几个 类 具有相同的 属性。示例:PersonID.
这个 属性 链接到人 table,我创建了一个带有两个按钮的 select 框。而不是对具有 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>
想使用部分:
@Html.Partial("~/Views/Frame/Person.cshtml", Model)
问题
如何在Partial中有一个模型,并使用调用Partial的View的模型,可以是不同的类和相同的属性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>
您可以选择以下两种方法之一(可能还有更多方法,但这些方法可能是最常见的)
选项 1 - 接口
首先创建一个接口class,例如:
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 - 继承
你的基地class:
public abstract class PersonBase
{
public int PersonID { get; set; }
}
并且实体像这样从基础继承:
public class SomeEntity : PersonBase
{
//snip
}
和你的看法几乎一模一样:
@model YourNamespace.PersonBase
The person ID is @Model.PersonID
我的项目中有几个 类 具有相同的 属性。示例:PersonID.
这个 属性 链接到人 table,我创建了一个带有两个按钮的 select 框。而不是对具有 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>
想使用部分:
@Html.Partial("~/Views/Frame/Person.cshtml", Model)
问题
如何在Partial中有一个模型,并使用调用Partial的View的模型,可以是不同的类和相同的属性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>
您可以选择以下两种方法之一(可能还有更多方法,但这些方法可能是最常见的)
选项 1 - 接口
首先创建一个接口class,例如:
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 - 继承
你的基地class:
public abstract class PersonBase
{
public int PersonID { get; set; }
}
并且实体像这样从基础继承:
public class SomeEntity : PersonBase
{
//snip
}
和你的看法几乎一模一样:
@model YourNamespace.PersonBase
The person ID is @Model.PersonID