我有几个具有隐藏字段的视图,例如:<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中不是必需的