簡體   English   中英

如何在一個視圖中使用其視圖模型調用多個局部視圖 - ASP.NET MVC

[英]How to call multiple partial views with their View Models inside a view - ASP.NET MVC

我有一個名為 Register 的視圖,我在其中使用 @Html.Partial("ViewName") 調用其他視圖 我想知道如何從視圖內的部分視圖調用其他 ViewModel。

我知道每個帶有字段的視圖模型都可以在頂部聲明,但我想知道是否可以做一些更好的事情?

看法

@model ViewModels.Account.RegisterVM 


<div class="accordion" id="acdRegistration">
    <div class="accordion-item">
        <h2 class="accordion-header" id="headClient">
            <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#colClient" aria-expanded="true" aria-controls="colClient">
                Client Registration
            </button>
        </h2>
        <div id="colClient" class="accordion-collapse collapse show" aria-labelledby="headClient" data-bs-parent="#acdRegistration">
            <div class="accordion-body">
                @Html.Partial("_RegisterClient")
--> Here I should call ClientRegistrationVM 
            </div>
        </div>
    </div>
    <div class="accordion-item">
        <h2 class="accordion-header" id="headClinic">
            <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#colClinic" aria-expanded="false" aria-controls="colClinic">
                Clinic Registration
            </button>
        </h2>
        <div id="colClinic" class="accordion-collapse collapse" aria-labelledby="headClinic" data-bs-parent="#acdRegistration">
            <div class="accordion-body">
                @Html.Partial("_RegisterClinic")
--> Here I should call ClinicRegistrationVM 


            </div>
        </div>
    </div>
    <div class="accordion-item">
        <h2 class="accordion-header" id="headRdvm">
            <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#colRdvm" aria-expanded="false" aria-controls="colRdvm">
                RDVM Registration
            </button>
        </h2>
        <div id="colRdvm" class="accordion-collapse collapse" aria-labelledby="headRdvm" data-bs-parent="#acdRegistration">
            <div class="accordion-body">
                @Html.Partial("_RegisterUser")
--> Here I should call UserRegistrationVM 

            </div>
        </div>
    </div>
</div>

視圖模型

 public class RegisterVM 
    {

        public List<string> RegistrationTypes
        {
            get { return new List<string>() { "Client", "Clinic", "RDVM" }; }
        }

        [Required(ErrorMessage = "Email address required")]
        public string EmailAddress { get; set; }

        public string LastName { get; set; }

        public string FirstName { get; set; }

        public string PatientName { get; set; }

        public string PatientId { get; set; }

        [Required(ErrorMessage = "Registration type required")]
        public string RegistrationType { get; set; }

    }

    public class ClinicRegistrationVM 
    {
        [Required(ErrorMessage = "Email address required")]
        public string EmailAddress { get; set; }

        public string PatientName { get; set; }

        public string PatientId { get; set; }

    }
    public class ClientRegistrationVM 
    {
        [Required(ErrorMessage = "Email address required")]
        public string EmailAddress { get; set; }

        [Required(ErrorMessage = "Last name required")]
        public string LastName { get; set; }

        [Required(ErrorMessage = "First name required")]
        public string FirstName { get; set; }

        public string PatientName { get; set; }

        public string PatientId { get; set; }

    }


    public class UserRegistrationVM 
    {
        [Required(ErrorMessage = "Email address required")]
        public string EmailAddress { get; set; }

        public string PatientName { get; set; }

        public string PatientId { get; set; }

    }

有一個HtmlHelper.Partial的重載版本接收一個 model object 將被傳遞到局部視圖。

Html.Partial("PartialViewName", ModelObject)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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