我正在搜索一个显示结果表的搜索页面。我想用Javascript添加一些功能。整个表封装在一个表单中,表中的每个项都有几个可以执行的操作;一个例子是Add comment
。
我能够正确传递所有其他表单变量,因为它们是静态的。我遇到的问题是能够将ID
传递给操作,因为它会针对结果的每一行进行更改。这是我到目前为止(缩短)
动作标题:
public ActionResult Create( ........., Int ID);
查看:
...
@foreach( var item in Model )
{
...
@Html.ActionLink("Comment", "Create", "Comment", new { ID = Model.ID }, new { onclick = "CommentSubmit(@Model.ID)" })
}
使用Javascript:
function CommentSubmit(id) {
//What do?
$("#DynForm").attr("action", "/Comment/Create");
$("#DynForm").submit();
};
除了我的其他表单变量之外,我怎样才能让Javascript / jQuery传入ID
?
有点问题,但我是否需要停止执行原始锚点(因为我的javascript正在提交表单)?我该怎么做?
答案 0 :(得分:1)
您可以在提交带有ID
的表单之前创建或更新隐藏的输入function CommentSubmit(id) {
if($("#DynForm #id").length > 0)
$("#DynForm #id").val(id);
else
$("#DynForm").append("<input type='hidden' id='id' name='id' value='"+id+"' />");
$("#DynForm").attr("action", "/Comment/Create");
$("#DynForm").submit();
};
答案 1 :(得分:1)
你可以这样做
<input type="hidden" name="myID" />
function CommentSubmit(id) {
$("#myID").val(id);
$("#DynForm").attr("action", "/Comment/Create");
$("#DynForm").submit();
};
然后在控制器中添加myID作为参数
Public ActionResult Action(string myID , .... ){
}
或者,你可以这样做
function CommentSubmit(id) {
//What do?
$("#DynForm").attr("action", "/Comment/Create/" + id);
$("#DynForm").submit();
};
Asp.Net中的默认路由将使用url的第三部分作为参数“id”
离。 {控制器} / {行动} / {ID}