10

我刚刚开始使用 MVC4,我看到的第一个操作方法有一些新的东西。我检查了互联网,找不到任何关于此的信息:

public ActionResult LogOn()
        {
            return ContextDependentView();
        }

有谁知道 ContextDependentView 是什么?

对我来说有些新东西。

4

1 回答 1

11

它的目的是促进登录和注册操作的查看或部分查看操作结果。

    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包含 a时?content=xxxx,它会将“Json”添加到操作名称之前,将其填充为 ViewBag 属性并返回视图的部分版本。例如:

一个请求/Account/Login?content=test将被解析为ViewBag.FormAction = "JsonLogin";然后返回一个部分。

请求/Account/Login没有内容查询字符串,因此其表单操作仍然存在ViewBag.FormAction = "Login";

于 2012-02-01T18:14:31.603 回答