【问题标题】:mvc reach editorfor from controller by its namemvc 通过其名称从控制器到达 editorfor
【发布时间】:2014-07-03 13:15:29
【问题描述】:

大家好,我正在尝试通过为其命名来联系 EditorFor。我给了这样的名字

@Html.EditorFor(model => model.name,new {name = "sizeName"})

我正在尝试从控制器获取它

public ActionResult EditSize(int id,string sizeName)
    {
        Repository<SizeList> _rs = new Repository<SizeList>();
        SizeList _sizeList = _rs.Find(a => a.id == id);

        _sizeList.name = sizeName;
        _rs.Save();

        return RedirectToAction("Size");
    }

但它没有得到 sizeName 我该怎么做谢谢?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 editorformodel


    【解决方案1】:

    您可以使用模型对象、TempData、ViewBag 或 ViewData 来保存该对象值,然后您可以使用它来设置 html 元素的名称。

    控制器示例:

    public ActionResult EditSize(int id,string sizeName)
        {
            Repository<SizeList> _rs = new Repository<SizeList>();
            SizeList _sizeList = _rs.Find(a => a.id == id);
    
            TempData["sizeName"] = sizeName;
            //or ViewBag.sizeName = sizeName;
            //or ViewData["sizeName"] = sizeName;
    
            _sizeList.name = sizeName;
            _rs.Save();
    
            return RedirectToAction("Size");
        }
    

    HTML 示例:

    @Html.EditorFor(model => model.name,new {Name = TempData.Peek("sizeName") })
    @Html.EditorFor(model => model.name,new {Name = ViewData["sizeName"] })
    @Html.EditorFor(model => model.name,new {Name = ViewBag.sizeName })
    

    注意事项:

    如果第一个字母是大写(不是“名称”而是“名称”),您只能以这种方式指定名称。

    如果您想将字段值 POST 到该特定模型属性,则无需指定元素名称,因为该名称是使用模型属性名称自动设置的。

    【讨论】:

      【解决方案2】:

      因为@Html.EditorFor() 您已经通过将模型传递给此助手来设置名称。此帮助程序使用name="name" 生成 HTML 属性。

      所以,在你的控制器方法中你应该有:

      public ActionResult EditSize(string name,int id)
          {
              Repository<SizeList> _rs = new Repository<SizeList>();
              SizeList _sizeList = _rs.Find(a => a.id == id);
      
              _sizeList.name = name;
              _rs.Save();
      
              return RedirectToAction("Size");
          }
      

      你的助手应该是这样的:

      @Html.EditorFor(model => model.name)
      

      【讨论】:

        猜你喜欢
        • 2011-01-15
        • 2014-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-11
        • 2023-04-01
        • 2010-12-21
        • 1970-01-01
        相关资源
        最近更新 更多