MVC的新手,所以在这里。
我目前正在加载 HTML。部分在我的 Index.cshtml 页面上,如下所示:
@Html.Partial("~/Views/Switchb/editPerson.cshtml")
但是,我需要根据当前用户的类别编号在控制器中对其进行自定义。
举个例子,如果用户的类别为 3,那么我需要这样做:
@Html.Partial("~/Views/Switchb/3.cshtml")
控制器中的"代码隐藏">中是否有任何类型的调用,我可以使用这些调用来执行此操作?或者我只需要将代码放在 cshtml 页面中并通过控制器将其类别号传递给 cshtml 页面?
您可以从控制器操作呈现部分视图。可以将视图名称作为字符串传递。
public ActionResult Switchb(string categoryNumber) {
var viewModel = new MyViewModel { CategoryNubmer = categoryNumber };
// additional processing, backend calls, formatting ....
return PartialView(categoryNumber, viewModel);
}
要从 View 调用此操作,请执行以下操作:
@{
var routeValues = new RouteValueDictionary(new {
categoryNumber= "3",
});
Html.RenderAction("Switchb", "MyController", routeValues);
}
确定控制器中的类别(通过 url 参数、从数据库或其他任何方式(,然后将该值设置为视图模型的属性。然后在您的代码行中您可以执行此操作
@Html.Partial("~/Views/Switchb/" + Model.Category + ".cshtml");