我正在为我的应用程序使用Razor页面,在我的应用程序的一部分中,我使用了部分视图,这是我的代码;
public class Permission
{
[Key]
public int PermissionId { get; set; }
public string PermissionTitle { get; set; }
public int? ParentID { get; set; }
}
public class IndexModel : PageModel
{
public PartialViewResult OnGetCreateRole()
{
var ListPermission = permissionService.AllPermission();
return new PartialViewResult()
{
ViewName = "_PCreateRole", // partial's name
ViewData = new ViewDataDictionary<List<Permission>>(ViewData,
ListPermission)
};
}
}
ViewData
是Permission
类的列表,我已经将ViewData发送给partial,但是我不知道如何获取ViewData
,也我的partial使用了另一个model
,以下是我的部分内容:
@model ToMVC.DataLayer.Entities.User.Role
<div class="row">
<div class="col-md-12">
<form asp-page="CreateRole" method="post">
<div class="form-group">
<label class="control-label">Title</label>
<input asp-for="RoleTitle" class="form-control"/>
<p><span class="text-danger" asp-validation-for="RoleTitle"></span></p>
</div>
<div class="form-group">
<input type="submit" value="submit" class="btn btn-primary" />
</div>
//this part needs ViewData
@foreach (var item in ViewData)
{
}
</form>
</div>
</div>
我想在ViewData
循环中使用Foreach
。
答案 0 :(得分:0)
比ViewData更好的解决方案是简单地创建一个新的ViewModel类,其中包含视图所需的所有信息。
//check your namespace here - this is just an example
@model ToMVC.DataLayer.UserRoleAndPermissions
<div class="row">
<div class="col-md-12">
<form asp-page="CreateRole" method="post">
<div class="form-group">
<label class="control-label">Title</label>
<input asp-for="RoleTitle" class="form-control"/>
<p><span class="text-danger" asp-validation-for="RoleTitle"></span></p>
</div>
<div class="form-group">
<input type="submit" value="submit" class="btn btn-primary" />
</div>
@foreach (var item in Model.Permissions)
{
}
</form>
</div>
</div>
您的看法
{{1}}