Jquery .ajax POST 函数错误返回 asp.net MVC.
Jquery .ajax POST function error return in asp.net MVC
我有一个JavaScript函数,它重定向到 Asp.net MVC操作方法。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SupplierDetail(int SupplierID)
{
int test = SupplierID;
return View();
}
/// Java Script Code ...
$('#list .clsRowButtonClick').live('click', function () {
var id = $(this).attr('RowID');
var type = $(this).attr('ButtonType');
alert("ID: " + id + " 'nButtonType :" + type);
var Supplier = {};
Supplier.SupplierID = id;
var jsonString = JSON.stringify(Supplier);
$.ajax({
type: "POST",
url: "/Supplier/SupplierDetail/",
dataType: "json",
data: jsonString,
contentType: "application/json; charset=utf-8",
success: function (response, textStatus, jqXHR) {
alert("success");
},
error: function (jqXHR, textStatus, errorThrown) {
//alert(jsonString);
alert("jqXHR.responseText --> "+ jqXHR.responseText + "'njqXHR --> " + jqXHR + "'ntextStatus --> " + textStatus + " 'nerrorThrown --> " + errorThrown);
}
});
});
它如我预期的那样工作。它通过提供更正SupplierDetail
参数值来触发操作方法。
但是在调用名为SupplierDetail
的操作方法后会引发错误。
所以我使用 javascript alert function
跟踪代码。
jqXHR.responseText --> <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>SupplierDetail</title>
<link href="/Content/themes/Redtheme/theme.css" rel="stylesheet" type="text/css" />
<link href="/Content/themes/Redtheme/style.css" rel="stylesheet" type="text/css" />
<script src="/Scripts/jquery-1.6.3.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script>
<script src="/Scripts/modernizr-2.0.6-development-only.js" type="text/javascript"> </script>
<link href="/Scripts/jqgrid_utils/css/cupertino/jquery-ui-1.8.18.custom.css" rel="stylesheet" type="text/css" />
<link href="/Scripts/jqgrid_utils/css/ui.jqgrid.css" rel="stylesheet" type="text/css" />
<script src="/Scripts/jqgrid_utils/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.base.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.celledit.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.common.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.custom.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.filter.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.formedit.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.grouping.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.import.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.inlinedit.js" type="text/javascript"> </script>
<script src="/Scripts/jqgrid_utils/grid.jqueryui.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.loader.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.subgrid.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.tbltogrid.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/grid.treegrid.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/jqDnR.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/jqModal.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/jquery.fmatter.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/JsonXml.js" type="text/javascript"></script>
<script src="/Scripts/jqgrid_utils/jquery.jqGrid.min.js" type="text/javascript"> </script>
</head>
<body>
<div id="container">
<div id="header">
<div>
<h2>POS 2012</h2>
</div>
<div id="topmenu">
<ul>
<li class="current"><a href="./MemberRegistration.jsp">Suppliers</a></li>
<li><a href="./RetailerRegistration.jsp">Products</a></li>
<li><a href="./Index.jsp">SupplierOrder</a></li>
<li><a href="#">Contact us</a></li>
</ul>
</div>
</div>
<div id="wrapper">
<h2>SupplierDetail</h2>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"> </script>
<form action="/Supplier/SupplierDetail/" method="post"> <fieldset>
<legend>Supplier</legend>
<div class="editor-label">
<label for="SupplierName">SupplierName</label>
</div>
<div class="editor-field">
<input class="text-box single-line" id="SupplierName" name="SupplierName" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="SupplierName" data-valmsg-replace="true"></span>
</div>
<div class="editor-label">
<label for="Address">Address</label>
</div>
<div class="editor-field">
<input class="text-box single-line" id="Address" name="Address" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="Address" data-valmsg-replace="true"></span>
</div>
<div class="editor-label">
<label for="Phone">Phone</label>
</div>
<div class="editor-field">
<input class="text-box single-line" id="Phone" name="Phone" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="Phone" data-valmsg-replace="true"></span>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
</form>
<div>
<a href="/">Back to List</a>
</div>
</div>
<div id="footer">
<div id="credits">
Copy right © ....
</div>
<br />
</div>
</div>
</body>
</html>
jqXHR --> [object Object]
textStatus --> parsererror
errorThrown --> SyntaxError: JSON.parse: unexpected character
每一个建议都将不胜感激。
看起来您期待来自服务器的 HTML 响应 - 因此您需要将dataType
选项的值更改为"html"(或完全删除它(。
[HttpPost]
public JsonResult SupplierDetailTest(int SupplierID)
{
int test = SupplierID;
return Json(true, JsonRequestBehavior.AllowGet);
}
$(document).ready(function () {
$('#list .clsRowButtonClick').live('click', function () {
var SupplierID = $(this).attr('RowID');
$.ajax({
url: "/Supplier/SupplierDetailTest/", type: "POST", dataType: "json",
data: { SupplierID: SupplierID },
//contentType: "application/json; charset=utf-8",
success: function (data) {
alert("success");
},
error: function (jqXHR, textStatus, errorThrown) {
alert("jqXHR.responseText --> " + jqXHR.responseText + "'njqXHR --> " + jqXHR + "'ntextStatus --> " + textStatus + " 'nerrorThrown --> " + errorThrown);
}
});
});
});
相关文章:
- 借助asp.net验证或java脚本对多个文本进行验证
- 将Javascript数组发送到控制器ASP.NET MVC
- ASP.NET通过单击JavaScript按钮触发c#事件
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 从javascript调用asp.net codebehind函数
- 使用javascript的Asp.net内容占位符
- 获取ASP.NET Ajax Timer状态
- ASP.NET网络摄像头显示
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- asp.net,包括iss上的javascript slow
- 选择不在GridView-ASP.NET中激发
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 使用ASP.NET将谷歌地图添加到项目中,并从数据库中检索位置
- 有什么“;错误的”;将javascript放在asp.net表单上,而不是放在单独的文件中
- 将Javascript日期转换为ASP.NET日期格式
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- 在asp.net中确认是或否消息
- ASP.NET MVC 3-在ajax调用后,重定向到新页面或生成页面刷新
- asp.net中的验证工具