如何在asp.net mvc回发控制器动作中访问hiddenField值?

Pra*_*ate 5 asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

我们可以asp:Label直接在MVC回发控制器操作中访问该值吗?我还想知道如何访问hiddenFieldASP.NET MVC回发控制器操作中的值.

Dav*_*Fox 18

在ASP.NET MVC中,您不使用<asp:...标记,但您可以尝试将表单中的任意数量的输入POST到控制器操作,其中CustomViewModel类可以绑定到数据并允许您进一步操作它.

public class CustomViewModel
{
    public string textbox1 { get; set; }
    public int textbox2 { get; set; }
    public string hidden1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

例如,如果您在MVC 3中使用Razor语法,则View可能如下所示:

@using (Html.BeginForm())
{
    Name:
    <input type="text" name="textbox1" />
    Age:
    <input type="text" name="textbox2" />
    <input type="hidden" name="hidden1" value="hidden text" />
    <input type="submit" value="Submit" />
}
Run Code Online (Sandbox Code Playgroud)

然后在你的控制器动作中自动将这些数据绑定到你的ViewModel类,让我们说它叫做Save,看起来像:

[HttpPost]
public ActionResult Save(CustomViewModel vm)
{
    string name = vm.textbox1;
    int age = vm.textbox2;
    string hiddenText = vm.hidden1;
    // do something useful with this data
    return View("ModelSaved");
}
Run Code Online (Sandbox Code Playgroud)

  • 应该鼓励使用视图模型,而不是我理解的FormCollection. (2认同)