我有几个具有隐藏字段的视图,例如:

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

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

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

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


最后,我有几个实现此基本控制器的控制器:

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

       //if tabid = 1, do this.. if it is 2, do this, etc...
    }
}


第一次加载控制器时,如何为此问题访问隐藏域值或视图上任何其他控件的值?该应用程序仅在此时启动,因此尚未发布任何内容。我试图从控制器和基本控制器访问值,并且Request.Form中没有任何值。

我正在将应用程序从aspx转换为MVC,在aspx应用程序上,其背后的母版页代码具有以下内容:

 HtmlInputHidden hidddentabid;
 hidddentabid = (HtmlInputHidden)Body.FindControl("hiddenTab");


对于aspx中的母版页,此方法工作正常,但在MVC中却不能。我花了几个小时寻找,却找不到任何东西。我所能找到的就是如何访问发布到控制器的隐藏值。第一次呈现视图控制器时,什么都没有。

任何帮助将不胜感激!

最佳答案

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

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


正如Andrie提到的runat="server"在Asp.Net MVC中不是必需的

10-06 04:46
查看更多