我刚刚开始使用MVC4,我看到的第一个动作方法有新的东西。我检查了互联网,但无法找到任何相关信息:
public ActionResult LogOn()
{
return ContextDependentView();
}
有谁知道ContextDependentView是什么?
对我来说很新鲜。
答案 0 :(得分:11)
其目的是为登录和注册操作提供View或PartialView操作结果。
private ActionResult ContextDependentView()
{
string actionName = ControllerContext.RouteData.GetRequiredString("action");
if (Request.QueryString["content"] != null)
{
ViewBag.FormAction = "Json" + actionName;
return PartialView();
}
else
{
ViewBag.FormAction = actionName;
return View();
}
}
与MVC中的其他内容一样,它是按惯例完成的......这里的约定是Request.QueryString
包含?content=xxxx
时,它将“Json”添加到操作名称,将其填充为ViewBag属性并返回View的部分版本。例如:
/Account/Login?content=test
的请求将被解析为ViewBag.FormAction = "JsonLogin";
,然后返回部分。
对/Account/Login
的请求没有内容查询字符串,因此其表单操作仍为ViewBag.FormAction = "Login";