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