在提交按钮的onclick()事件和View中的表单提交之间保存数据

时间:2014-08-07 16:12:59

标签: jquery ajax asp.net-mvc

以下表单从视图发布到操作方法。 onclick()事件调用jquery.ajax并将数据(第一个div的内容)传递给相同的操作方法。首先执行jquery.ajax,然后提交表单提交。当表单提交时,如何获得pid的值(由jquery.ajax传递)?我需要像会话一样使用,不是吗?

查看:

<form id="newform" action="/ad/newad" method="post">
    <div id="divAjax">
       <p align="center" style="background: white; margin: 0cm 0cm 0pt;">Dan</p>
       <p align="center" style="background: white; margin: 0cm 0cm 0pt;">
       <b><span contenteditable="true"> CLICK TO CHANGE</span></b>
       </p>
    </div>
    <div class=" content">
       <input type="text" name="PName"/>
       <input type="text" name="SName"/>
       <input type="submit" value="Submit" id="btnSubmit" onclick="return updatePerson();" />
    </div>
</form>
<script>
function updatePerson(){
   $.ajax({
       url         : "/ad/newad",
       type        : "POST",
       dataType    : "json",
       contentType : "application/json;",
       data        : "{ pid:'" + $("#divAjax").html() + "' }"       
   });
</script>

行动方法:

[HttpPost]
[ViewException]
[UserFilter(OpUserAuthType.Admin, OpUserAuthType.Normal)]
public ActionResult NewAd(string id, string pid, AdDetail model)
{
    ...
}

1 个答案:

答案 0 :(得分:0)

我认为你只需要一个提交按钮 - 只需一个常规按钮。无论如何,您的表单会提交与您的ajax帖子相同的操作。我想也许您只需要在点击处理程序中一次发布所有数据,而不仅仅是您的pid,您可能不需要我认为的提交。

如果你需要在帖子发布后做某事,你可以使用ajax调用的success:或error:handler。