无法从 asp.net MVC 中的视图 运行 JavaScript
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 仍然无效
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
创建
有
您的 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>
希望这个回答对以后的其他人有所帮助
我想要 运行 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 仍然无效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
创建有
您的 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
... 并在脚本部分
@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>
希望这个回答对以后的其他人有所帮助