将值从EditorFor传递给方法

6 c# linq asp.net asp.net-mvc

我有EditorFor我的观点.像这样

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

另外我在控制器中操作,从数据库中查找表中的所有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");
 }
Run Code Online (Sandbox Code Playgroud)

在索引视图中,点击进入更新操作的按钮并启动它.这是代码

<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>
Run Code Online (Sandbox Code Playgroud)

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

teo*_*kot 1

您基本上应该设置namerender 的属性input

\n\n

如果您使用 MVC 4,则在这种情况下您会出现空间过载EditorFor

\n\n

你可以这样使用它:

\n\n
@Html.EditorFor(model => model.First().Link,\n    null,\n    "start", //That will set id and name attributes to start\n    new { @class = "form-control", placeholder = "Email" })\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,您不再需要了id="start"

\n\n

更新后:

\n\n

你基本上有两个选择。

\n\n

1s 选项 - 使用form

\n\n
@using (Html.BeginForm("Update", "InvitationMails", FormMethod.Post)) //maby you need GET\n{\n    @Html.EditorFor(model => model.First().Link,\n        null,\n        "start", //That will set id and name attributes to start\n        new { @class = "form-control", placeholder = "Email" })\n\n        <ul class="btn btn-default" style="width: 150px; list-style-type: none; font-size: 16px; margin-left: 20px">\n            <li style="color: white">\n                <button type="submit" style="color:white">\xd0\x94\xd0\xbe\xd0\xb1\xd0\xb0\xd0\xb2\xd0\xb8\xd1\x82\xd1\x8c \xd0\xbf\xd0\xbe\xd1\x87\xd1\x82\xd1\x83</button>\n            </li>\n        </ul>\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n