如何在MVC控制器操作方法中访问分配给HTML.Hidden变量的变量值

时间:2010-10-21 13:45:17

标签: asp.net-mvc

我正在编写我的第一个ASP.Net网页并使用MVC。

我有一个字符串,我在部分视图中使用网格控件(DevExpress MVCxGridView)构建。在我的部分视图中,我使用的是HTML.Hidden帮助程序,如下所示。

    ' Create a hidden variable to pass back a comma-delimited string
Response.Write(Html.Hidden( "exclusionList", Model.ExclusionList))

此隐藏元素的值在客户端javaScript中分配:

 exclusionListElement = document.getElementById("exclusionList");
 // ... 
 exclusionString = getExclusionString();
 exclusionListElement.value = exclusionString;

这似乎没有问题。

在我的控制器操作方法中:

        <AcceptVerbs( HttpVerbs.Post )> _
    Public Function MyPartialCallback(updatedItemList As myModel) As ActionResult

        Dim myData As myModel = GetMyModel()

        Return PartialView( "MyPartial", myModel.myList )
    End Function

updatedItemList参数始终没有,并且排除列表不存在于Request.Forms中的任何位置。

我的问题是:

  1. 使用Html.Hidden的正确方法是什么,以便我可以访问MVC Controller Action方法中的数据。

  2. 向Request.Form添加“货物”变量是将数据发送回服务器端MVC Controller Action方法的最佳方式吗?它看起来像 twine和duct-tape 方法。是否有更结构化的方法?

2 个答案:

答案 0 :(得分:0)

如果需要返回exclusionList变量,则只需要在视图模型中添加一个与该名称完全匹配的属性。确保它的类型正确(在这种情况下看起来像string),然后它应该为您在视图模型中自动填充该属性。

是的,不需要Response.Write电话。相反,只需在视图中使用Html.HiddenFor(...)帮助程序。

答案 1 :(得分:0)

查看生成的HTML。记下隐藏字段的name属性。使用此名称作为操作参数名称:

Public Function MyPartialCallback(exclusionList As string)