如果我的操作名称与视图名称相同,则两个重载View(model)
和View("viewName", model)
之间的基本区别是什么。
其中哪些更适合用来使代码更清晰?有没有性能差异?
答案 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
进行查找。