通过MVC中的ActionLink或Submit按钮传递多个值

时间:2014-01-31 09:14:27

标签: asp.net-mvc

我的视图中有一个脚手架列表类型表。在表格上方,我还有两个复选框。当我点击Edit链接时,我还需要传递选定的Id以及CheckBoxes'值。

我可以使用ActionLink传递主键值,如

@Html.ActionLink("Action","Controller", new { id=@item.Id })

我可以通过将CheckBoxes包装成Html.Beginform来获取@using(Html.BeginForm("Action","Controller",FormMethod="Post"){ <input type="checkbox" name="Check" value="1" /> <input type="checkbox" name="Check" value="2" /> -- table <input type="Submit" value="Edit"/> 值,

[HttpPost]
Public ActionResult Edit(IEnumerable<string> check)
{ }

在我的控制器中,我可以像

那样处理
Primary key value

在这里,我需要同时获得Checkboxes' value以及{{1}},我尝试了这两种方式,而且我只能获得其中任何一种方法。任何人都可以帮助我获得这两个价值观吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

您可以在action参数中包含id。像

[HttpPost]
Public ActionResult Edit(IEnumerable<string> check, int id)
{ }

此外,您需要使用提交按钮而不是操作链接发布表单。 因此,要发送ID,您需要将其放在隐藏字段中,它会自动发送到帖子中。

确保将隐藏字段命名为与参数名称相同的名称,即“id”。

修改 这样做: 以形式隐藏字段:像这样:

<input type="hidden" id="hf" value="TEst" name="hid" />

然后在每一行中取一个编辑按钮,并调用一个javascript函数。如下所示:

<button type="button" onclick="clickfunc(@item.UniqueId)">Edit</button>

接下来进入Javascript并设置隐藏字段,然后进行表单提交。如下所示:

@section scripts{
    <script type="text/javascript">
    function clickfunc(id) {
        $("#hf").val(id);
        $('form').submit();
    }
    </script>
}

现在,您可以获得控制器操作中的值。在我的例子中,它看起来像:

public ActionResult EditTry(string hid)
        {
            return View();
        }

答案 1 :(得分:1)

您将在“检查”字符串中获得选定的值

要在提交按钮上获取名称类型jquery,请单击并将其存储在隐藏字段中,并从表单集合中访问隐藏字段

       var getval = $("#Check option:selected").text();
            $("#hdnText").val(getval);

这是控制器代码:

 [HttpPost]
        Public ActionResult Edit(string check, FormCollection collection)
            {
            string strText = collection["hdnText"].ToString();
            string strValue = check;
            }