![](/img/trans.png)
[英]Passing javascript array from view to controller in ASP.Net MVC 5
[英]Cant run JavaScript from view in asp.net MVC
我想從視圖運行JavaScript / jQuery,但什么都沒給我看。 我的代碼工作和數據記錄在數據庫中,但不知道為什么JavaScript / jQuery無法工作
我的代碼是:
動作代碼:
[HttpPost]
public ActionResult Register(User user)
{
UserRepository blUser = new UserRepository();
if (ModelState.IsValid)
{
if (blUser.Add(user))
{
return Json(new JsonData() { Success = true });// return {"Success":true}
}
else
{
return Json(new JsonData() { Success = false }); // return {"Success":false}
}
}
else
{
return Json(new JsonData() { Success = false }); // return {"Success":false}
}
}
並查看代碼:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script>
$(document).ready(function (e) {
e.preventDefault();
$("#reg-btn").click(function () {
$.ajax({
type: "Post",
url: "/Home/Register",
data: null,
dataTpe: "Json",
success: function (result) {
if (result.Success == true) {
alert("success");
}
},
error: function () {
alert("error");
}
});
});
});
</script>}
如果只單擊數據庫中的數據記錄,則沒有按下提交按鈕時什么也沒有發生……如果在視圖中刪除了以下行代碼,則在新頁面中向我顯示“ {“ Success”:true}“:
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
如果我更改了控制器的返回值仍然無法正常工作
return JavaScript("alert('success')"); // again show string "alert('success')" in new page if above line code removed
和局部視圖...
哪個JavaScript參考文件添加到了我的項目? 由Visual Studio 2015 / MVC 4 + jquery.unobtrusive-ajax.min.js創建的默認值
ty
您的e.preventDefault()
放在錯誤的位置,可能會在開發工具控制台中e.preventDefault()
錯誤
更改
$(document).ready(function (e) {
e.preventDefault();
$("#reg-btn").click(function () {
....
至
$(document).ready(function () {
$("#reg-btn").click(function () {
e.preventDefault();
....
我找到了解決我問題的方法。 只是在Ajax.BeginForm
方法,我增加OnSuccess
和OnFailure
性質AjaxOptions
...和2個定義的函數都在腳本部分
@using (Ajax.BeginForm("Register",new AjaxOptions {
OnSuccess = "OnSuccess",
OnFailure = "OnFailure"
}))
{
並在腳本部分
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script type="text/javascript">
function OnSuccess(response) {
alert("done");
}
function OnFailure(response) {
alert("error");
}
</script>
我希望這個答案將來能對其他人有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.