查看(模型)与视图(“viewName”,模型)

时间:2013-03-28 08:14:12

标签: asp.net-mvc-3

如果我的操作名称与视图名称相同,则两个重载View(model)View("viewName", model)之间的基本区别是什么。

其中哪些更适合用来使代码更清晰?有没有性能差异?

1 个答案:

答案 0 :(得分:2)

我明白应该没有任何区别,这两种方法只是重载。

以下是MVC3代码库的来源 -

    protected internal ViewResult View() {
        return View(null /* viewName */, null /* masterName */, null /* model */);
    }

    protected internal ViewResult View(object model) {
        return View(null /* viewName */, null /* masterName */, model);
    }

    protected internal ViewResult View(string viewName) {
        return View(viewName, null /* masterName */, null /* model */);
    }

    protected internal ViewResult View(string viewName, string masterName) {
        return View(viewName, masterName, null /* model */);
    }

    protected internal ViewResult View(string viewName, object model) {
        return View(viewName, null /* masterName */, model);
    }

    protected internal virtual ViewResult View(string viewName, string masterName, object model) {
        if (model != null) {
            ViewData.Model = model;
        }

        return new ViewResult {
            ViewName = viewName,
            MasterName = masterName,
            ViewData = ViewData,
            TempData = TempData
        };
    }

在内部,如果viewName未通过,MVC会使用ControllerContext进行查找。