簡體   English   中英

@ HTML.Partial將通用類用於不同類中的同一屬性

[英]@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM