0

2 つのオーバーロードの基本的な違いView(model)View("viewName", model)、アクション名がビュー名と同じ場合はどうなりますか?

コードをより明確にするために使用するのが好ましいのはどれですか? 性能差はありますか?

4

1 に答える 1

2

違いはないはずだと理解しています.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 に答える