![](/img/trans.png)
[英]How to have Different Partial classes use a Base Class to override same partial Method?
[英]@HTML.Partial use generic class for the same property in different classes
我的項目中有幾個具有相同屬性的類。 示例: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>
想要使用部分:
@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>
您可以通過以下兩種方式之一執行此操作(可能有更多方式,但這些可能是最常見的方式)
選項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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.