Asp.net mvc 通过ViewData.Model传递数据与通过View&x27;谁的论点?

Asp.net mvc 通过ViewData.Model传递数据与通过View&x27;谁的论点?,asp.net-mvc,Asp.net Mvc,我对asp.NETMVC很陌生。这可能是一个“幼稚”的问题 我们可以使用以下两种方法(当然还有其他方法)从控制器内部传递数据: ViewData.Model=obj; return View(); 或 每种方法的优缺点是什么?从技术上讲,我认为没有任何区别 我更喜欢使用第二种方法,因为对我来说它“感觉”更好 从技术上讲,我认为没有什么区别 我更喜欢使用第二种方法,因为对我来说它“感觉”更好 两个代码段都是相同的,第一个选项直接传递给对象模型,而第二个选项作为参数传递给视图,但最终将传递给对象模

我对asp.NETMVC很陌生。这可能是一个“幼稚”的问题

我们可以使用以下两种方法(当然还有其他方法)从控制器内部传递数据:

ViewData.Model=obj;
return View();


每种方法的优缺点是什么?

从技术上讲,我认为没有任何区别


我更喜欢使用第二种方法,因为对我来说它“感觉”更好

从技术上讲,我认为没有什么区别


我更喜欢使用第二种方法,因为对我来说它“感觉”更好

两个代码段都是相同的,第一个选项直接传递给对象模型,而第二个选项作为参数传递给视图,但最终将传递给对象模型

如果查看
View()
方法,可以看到在内部调用的第一个代码段

protected internal ViewResult View(object model) {
    return View(null, null, model);
}

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

    ....
}

因此,两者都是相同的,但第一个是直接方法。

两个代码段都是相同的,第一个选项直接传递给对象模型,而第二个选项作为参数传递给视图,但最终将传递给对象模型

如果查看
View()
方法,可以看到在内部调用的第一个代码段

protected internal ViewResult View(object model) {
    return View(null, null, model);
}

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

    ....
}

因此,两者都是相同的,但第一种方法是直接方法。

据我所知,没有区别。但实际上,使用第二种方法。这是相当清楚的。从我的理解,没有区别。但实际上,使用第二个选项。这要清楚得多。