我的视图中有一个脚手架列表类型表。在表格上方,我还有两个复选框。当我点击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}},我尝试了这两种方式,而且我只能获得其中任何一种方法。任何人都可以帮助我获得这两个价值观吗?提前谢谢。
答案 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;
}