将值从EditorFor传递给方法

时间:2017-03-10 08:39:24

标签: c# asp.net asp.net-mvc linq

我的视图中有EditorFor。 喜欢这个

@Html.EditorFor(model => model.First().Link, 
   new { htmlAttributes = new { @class = "form-control", placeholder = "Email", id= "start" } })

另外我在控制器中操作,从数据库中查找表中的所有NULL,并用一些值更新它,这里是代码

 public ActionResult Update(string start="lol")
 {
     ApplicationDbContext context = new ApplicationDbContext();

     IEnumerable<InvitationMails> customers = context.InvitationMails
            .Where(c => c.Link == null)
            .AsEnumerable()
            .Select(c => {
                c.Link = start;
                return c;
            });
     foreach (InvitationMails customer in customers)
     {
         // Set that row is changed
         context.Entry(customer).State = EntityState.Modified;
     }
     context.SaveChanges();
     return RedirectToAction("Index");
 }

在索引视图中,点击转到“更新操作”并启动它的按钮 这是代码

<ul class="btn btn-default" style="width: 150px; list-style-type: none; font-size: 16px; margin-left: 20px">
                <li style="color: white">@Html.ActionLink("Добавить почту", "Update", "InvitationMails", null, new { @style = "color:white" })</li>
            </ul>

但是这里是静态值更新,我想从VIew收到价值。 我需要如何编写代码?

1 个答案:

答案 0 :(得分:1)

您基本上应该设置呈现name的{​​{1}}属性。

如果您使用MVC 4,则在这种情况下您会有input的空间超载。

你可以像这样使用它:

EditorFor

请注意,您不再需要@Html.EditorFor(model => model.First().Link, null, "start", //That will set id and name attributes to start new { @class = "form-control", placeholder = "Email" })

更新后:

你基本上有两个选择。

1s选项 - 使用id="start"

form

第二个选项 - 在动作链接上单击使用js。