Html.Partial也可以传递多个数据
形如:@Html.Partial("Test", Model, new ViewDataDictionary { { "key", "object value" } });
1、contorller方法
public async Task<ActionResult> Create(string majorId="")
{
//取选择的专业
var major = await _majorService.GetByIdAsync(majorId);
ViewBag.Major = major;
var nowYear = DateTime.Now.Year;
List<SelectListItem> gradeList = new List<SelectListItem>();
for (int i = -3; i <= 3; i++)
{
string grade = (nowYear + i).ToString();
gradeList.Add(new SelectListItem(){Text=grade,Value=grade,Selected = (i==0)});
}
gradeList.Insert(0, new SelectListItem() { Text = "--请选择--",Value="",Selected = false});
ViewBag.GradeList = gradeList;
var model = new ClassInfoModel(){ MajorId = majorId };
return View(model);
}
2、视图
@model xxxxxx.ClassInfoModel
@{
ViewBag.Title = "新增";
Layout = "~/Views/Shared/_Layout.cshtml";
var major = ViewBag.Major as MajorModel ?? new MajorModel();
var gradeList = ViewBag.GradeList as List<SelectListItem> ?? new List<SelectListItem>();
}
@using (Html.BeginForm("Create", "ClassInfo", FormMethod.Post, new { @class = "cssClass" }))
{
@Html.Partial("_CreateOrUpdate", Model, new ViewDataDictionary() { { "majorName", major.Name },{"gradeList",gradeList} })
}
3、在_CreateOrUpdate分部视图中使用数据
@model xxxxxx.ClassInfoModel
专业:@ViewData["majorName"].ToString()
年级:@Html.DropDownList("Grade", ViewData["gradeList"] as IEnumerable<SelectListItem>, new
{
@class = "form-control",
data_required = "true"
})
4、Html.RenderAction传递多个方法参数值
<div class="ccccc" id="publicView">
@{
Html.RenderAction("actionName", "controllerName", new { CourseId = course.Id, TermId = term.Id });
}
</div>
网友评论