(原創)mvc中ajax.beginform重復提交的問題解決


最近處理mvc的一個小程序,廢話不多說,程序很簡單,如下圖:

三塊,采用load方式對數據進行操作,在處理提交的時候,出現了一個詭異的問題,我每一次提交的時候,都會將數據提交2次。

導致提交的數據被添加了2次,程序本身沒有大的錯誤。
我們看一下三段的代碼
leftindex(左邊欄)
@{
Layout = null;
}

<!DOCTYPE html>

<html>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
<head>
<meta name="viewport" content="width=device-width" />
<script src="~/Resouces/js/Commnon.js"></script>
<script>
$(document).ready(function () {

$("#menu li a").on("click", function () {
addwait();
$("#main").load($(this).attr("ref"), function (response, status) {
if (status != "success") {
alert("加載失敗 : " + status);
}
delwait();
});
});
});
</script>

<title>LeftIndex</title>
</head>
<body>
<div>
<ul id="menu">
<li><a href="javascript:void(0)" title="查看用戶詳情" ref="/UserManager/UserList">用戶管理</a></li>
<li><a href="javascript:void(0);" title="查看用戶詳情" ref="#">查看設置用戶組</a></li>
<li><a href="javascript:void(0);" title="查看用戶詳情" ref="#">查看設置權限組</a></li>
</ul>
</div>
<div id="main">

</div>
</body>
</html>

列表功能區域 userlist:
@{
Layout = null;
}

@model IEnumerable< SysDB.DB.TbUser>


<!DOCTYPE html>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>用戶列表</title>
<link href="~/Resouces/Css/maincommon.css" rel="stylesheet" />
<script>
$(document).ready(function () {
$(".btnadd").on("click", function () {
$(".dataarea").hide(100);
$("#setarea").show(500);
});
});
function showarea() {

$(".dataarea").show(500);
$("#setarea").hide(100);

}
</script>
</head>
<body>
<div id="main">
<div id="optarea">
<div class="btnadd fleft">添加</div>
<div class="btndel fleft">刪除</div>
<div class="btnfind fleft">查找</div>

</div>
<div class="dataarea">
<table id="uptb">
<tr>
<td width="60px">用戶id</td>
<td width="160px">用戶姓名</td>
<td width="60px" >密碼</td>

</tr>

@foreach (var item in Model)
{
<tr>
<td>@item.id</td>
<td>@item.username</td>
<td>@item.password</td>
<td>@Ajax.ActionLink("添加", "UserList",new{strid=@item.id}, new AjaxOptions { HttpMethod="post", UpdateTargetId="main"})</td>
</tr>
}

</table>
</div>
@Html.Partial("addUserList",Model);
</div>
</body>
</html>
添加部分:采用分布視圖 adduserlist
<div id="setarea" style="display: none;">
<div id="setdata">
@using (Ajax.BeginForm("addUserList", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "setdata" }))
{
<ul>
<li>
<p>用戶id:</p>
@Html.TextBox("id")
</li>
<li>
<p>用戶帳號:</p>
@Html.TextBox("netname")
</li>
<li>
<p>用戶名:</p>@Html.TextBox("name")
</li>
</ul>
<input type="submit" value="提交2" id="btnsub" />
}
</div>
</div>
整體來看,看出什么地方有問題了么?對了,我的
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval") 語句被引用了兩遍,一遍在left欄中,一遍在userlist中,他導致了jquery.unobtrusive-ajax.js文件被引用了2次,所以導致我在使用submit提交的時候生成了2個from,數據被重復提交2次。
所以各位在處理mvc的時候一定要注意js的引用,並且如果有能力自己寫ajax的話還是自己寫ajax比較方便。希望對新上手mvc的同學有幫助


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM