asp.net-mvc - 字符串模型,将值传递给 Controller ​​问题

标签 asp.net-mvc razor

我有一个绑定(bind)到字符串的 ASP.NET Razor View 。非常简单:

@model string
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Hello, @Model

@using(Html.BeginForm())
{
    <fieldset>
        <label for="name" style="color: whitesmoke">Name:</label>    
        <input type="text" id="name"/>
        <br/>
        <input type="submit" value="Submit"/>
    </fieldset>
}

还有一个简单的 Controller :

[HttpGet]
public ActionResult Index()
{
    object model = "foo";
    return View(model);
}

private string name;
[HttpPost]
public ActionResult Index(string name)
{
    return View();
}

当我按下提交按钮时,会触发 Index Post 操作结果,但“字符串名称”参数为空。 Razor 是否不够聪明,无法自动将此属性从 View 绑定(bind)到我的 Controller ,因为输入 ID 与 Controller 上的参数名称相匹配?如果没有,我该如何绑定(bind)它?我知道我可以使用具有属性的模型 Html.HiddenFor(m => m.Foo),但由于没有属性,我不知道如何正确调用此方法。我可以正确设置它调用 Html.Hidden (“name”,“foo”),但我不知道如何在这里传递值。我知道我可以使用 jquery 调用,例如:

 @Html.Hidden("name", "$('input[id=name]').val())"); 

这实际上是将 jquery 字符串作为值发送到 Controller ...我不确定此时该做什么。谢谢!

最佳答案

它足够智能来绑定(bind)属性,只需给您的输入一个与操作参数匹配的名称:

<input type="text" id="name" name="name" />

关于asp.net-mvc - 字符串模型,将值传递给 Controller ​​问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14483035/

相关文章:

面向 ASP.NET MVC/NHibernate 开发人员的 PHP MVC 框架

asp.net-mvc - 有没有一种很好的方法来控制显示模板应该如何呈现空字段?

html - Bootstrap 列未在同一行中对齐

asp.net-mvc-4 - 如何将数据从 Razor View Kendo UI DropDownList 传递到 Controller 变量?

c# - 如何获取 Razor View 引擎中集合中项目的元数据?

c# - 如何分离具有相同路径但执行不同操作的路由?

c# - 使用 .net MVC 5 从用户那里获取图像并将其存储为字符串

asp.net-mvc - 无法在模式弹出窗口(Kendo 窗口)中渲染 PartialView

javascript - 根据 DropDownListFor 显示/隐藏 div

c# - 使用 View 名称与完整路径调用部分 View