2017-12-27 145 views
0

我想從視圖運行JavaScript/jQuery,但未顯示任何內容。我的代碼工作和數據被記錄在數據庫中,但不知道爲什麼的JavaScript/jQuery的沒有工作無法在asp.net MVC中查看JavaScript視圖MVC

我的代碼:

操作代碼:

[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>} 

沒有發生提交按鈕按下數據庫僅僅是數據記錄時...只是在新的頁面顯示我「{」成功「:真正}」如果我刪除鑑於這行代碼:

<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

+0

'e.preventDefault()'應該在click事件處理程序中。 – Shyju

回答

0

我找到了解決辦法對我的問題。 只是Ajax.BeginForm方法,我加入OnSuccessOnFailure屬性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> 

我希望這個答案將有助於其他人在未來

0

e.preventDefault()是在錯誤的地點和開發工具的控制檯很可能引發錯誤

變化

$(document).ready(function (e) { 
    e.preventDefault(); 
    $("#reg-btn").click(function() { 
     .... 

$(document).ready(function() {   
    $("#reg-btn").click(function() { 
     e.preventDefault(); 
     .... 
+0

沒有解決我的問題,但ty –