0

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

其中哪一个更适合用于使代码更清晰?有性能差异吗?

4

1 回答 1

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.

于 2013-03-28T08:28:32.553 回答