关于MVC传值方式的区别

cai2h 2016-01-11 01:55:34
MVC传值可以用viewdata,viewbag,model。我看见一些书上说传值最好用model来。因为这是强类型,我觉得用model有时候反而没有用viewbag方便。我觉得用model大致可以数据验证,我用viewbag也可以自己验证啊?为什么推荐用model?求各位大神解悟。。。
...全文
369 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
风云再起9310 2016-01-11
  • 打赏
  • 举报
回复
我不是大神,我只是码农。希望可以帮得到你 MVC中一般有以下几种传值方式: 1.ViewBag:ViewBag是动态类型,使用时直接添加属性赋值即可 源码:
public ActionResult Index()  
{  
    ViewBag.name = "梁顺盛";  
    ViewBag.message = "欢迎使用MVC设计模式~~";  
    return View();  
} 
2.ViewData:ViewData只对当前Action有效,它是一个字典集合,通过key值读取对应的value; 源码:
public ActionResult Index()  
        {  
            ViewData["name"] = "梁顺盛";  
            ViewData["message"] = "欢迎使用MVC设计模式~~";  
            return View();  
        } 
3.TempData:使用TempData和使用ViewData方法是一样的,但是它可用于在不同的Action之间传值,这是ViewData做不到的。 源码:
public class MVCController : Controller  
{     
    public ActionResult Index1()  
    {  
        TempData["name"] = "梁顺盛";              
        return View();  
    }  
  
    public ActionResult Index2()  
    {  
        string strName = TempData["name"].ToString()  
        return View();  
    }  
4.Model:Controller通过Model传值应该是MVC中使用最为普遍的一种传值方式,通过强类型绑定,在View中可以很方便的通过Model的相应属性得到想要的值。
Xanl 2016-01-11
  • 打赏
  • 举报
回复
这个没有什么好纠结的、自己喜好用那种方式就用那个好了、实际上这几个差不多都一回事、就是写法不一样

62,262

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧