• 辅助方法、模型、视图数据


    eg1:

    如果想在一个表单中显示价格,可以用下边的控制器代码:

    public ActionResult Edit(int id){
        ViewBag.Price=10.0;
        return View();
    }

    在相应的视图中,使用 ViewBag 中的值来为 TextBox 辅助方法命名,可以实现渲染显示价格的文本框:

    @Html.TextBox("Price")

    将会生成如下的HTML标记

    <input id="Price" name="Price" type="text" value="10"/>
    

    eg2:

    当辅助方法查看 ViewData 里边的内容时,它们也能看到其中的对象属性。

    控制器代码:

    public ActionResult Edit(int id){
        ViewBag.Album = new Album{Price=11};
        return View();
    }

    在视图中使用代码:

    @Html.TextBox("Album.Price")

    渲染出的HTML标记如下:

    <input id="Album_Price" name="Album.Price" type="text" value="11"/>

    如果在 ViewData 中没有匹配“Album.Price” 的值,那么辅助方法将尝试查找与第一个点之前那部分名称(Album)匹配的值。换言之,就是找一个Album类型的对象。然后,辅助方法估测名称中剩余部分(Price),并找到相应的值。

    渲染得到的input元素的id特性值使用下划线代替了点,是因为在id特性中包含点是非法的。

    eg3:

    TextBox辅助方法依靠强类型视图数据也能很好的工作。

    控制器代码:

    public ActionResult Edit(int id){
        var album = new Album{Price=12.0m};
        return View(album);
    }

    页面代码:

    @Html.TextBox("Price")

    渲染生成的HTML标记

    <input id="Price" name="Price" type="text" value="12.0"/>

    如果想避免自动查找数据,可以向表单提供一个显示的值,显示提供值得方法是必需的。

    控制器代码:

    public ActionResult Edit(int id){
        var album = stareDB.Albums.Single(a=>a.AlbumId==id);
        ViewBag.Genres = new SelectList(storeDB.Genres.OrderBy(g=>g.Name),
                         "GenreId"."Name",album.GenreId);
        return View(album);
    }

    视图中的代码:

    @Html.TextBox("Title",Model.Title)

    辅助方法在查找强类型模型对象之前,会首先查看ViewBag,如果ViewBag中有Title,那就会接收ViewBag中的Title

  • 相关阅读:
    阿里云HBase携X-Pack再进化,重新赋能轻量级大数据平台
    CVE漏洞—PHPCMS2008 /type.php代码注入高危漏洞预警
    傻瓜神经网络入门指南
    一起来看 rxjs
    阿里云ACE共创空间——MQ消息队列产品测试
    阿里毕玄:技术人应如何选择职业发展路线?
    MyBatsi学习
    UEditor学习
    fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
    JS获取当前年份月
  • 原文地址:https://www.cnblogs.com/danwang/p/5038837.html
Copyright © 2020-2023  润新知