1

我正在一个显示结果表的搜索页面上工作。我想用 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();
};

ID除了我的其他表单变量之外,我怎样才能只传递 Javascript/jQuery ?

有点问题,但我是否需要停止执行原始锚点(因为我的 javascript 正在提交表单)?我该怎么做呢?

4

2 回答 2

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();
};
于 2013-01-29T21:11:42.750 回答
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}

于 2013-01-29T21:12:44.587 回答