ASP.Net MVC 如何访问控制器 Index() 上的隐藏字段

Rio*_*kis 2 c# asp.net-mvc hiddenfield

我有几个视图具有这样的隐藏字段:

<input type="hidden" runat="server" id="hiddenTab" value="1"/>

每个视图可能具有不同的值。

我有一个基本控制器,我希望能够在构造函数上访问这个值:

Public Class BaseController: Controller
{
    public BaseController()
    {
        string tabid = Request.Form["hiddenTab"];
    }
}
Run Code Online (Sandbox Code Playgroud)

最后我有几个控制器来实现这个基本控制器:

public class HomeController : BaseController
{
    public ActionResult Index()
    { 
       string tabid = Request.Form["hiddenTab"];

       //if tabid = 1, do this.. if it is 2, do this, etc...
    }
}
Run Code Online (Sandbox Code Playgroud)

当控制器首次加载时,如何访问隐藏字段值或视图上任何其他控件的值?该应用程序此时才刚刚开始,因此尚未发布任何内容。我试图从控制器和基本控制器访问值,而 Request.Form 中没有值。

我正在将应用程序从 aspx 转换为 MVC,并且在 aspx 应用程序上,母版页代码隐藏具有以下内容:

 HtmlInputHidden hidddentabid;
 hidddentabid = (HtmlInputHidden)Body.FindControl("hiddenTab");
Run Code Online (Sandbox Code Playgroud)

这适用于 aspx 中的母版页,但不适用于 MVC。我花了几个小时寻找,但找不到任何关于此的信息。我所能找到的只是如何访问发布到控制器的隐藏值。第一次呈现视图的控制器时没有任何内容。

任何帮助将不胜感激!

Ant*_*ash 5

您缺少name隐藏元素的属性。您可以根据名称获取值。尝试这个

<input type="hidden" id="hiddenTab" name="hiddenTab"  value="1"/>
Run Code Online (Sandbox Code Playgroud)

runat="server"Asp.Net MVC 中不需要Andrie 提到的