【发布时间】:2011-06-18 04:27:21
【问题描述】:
今天早些时候,我发布了另一篇帖子,@Darin Dimitrov 对我的帮助很大,但是我又一次被困住了...... 我的 javascript 调用 AddWebsite ActionResult ,它可以正常工作,但是 $.ajax() 中的错误函数总是触发,因为
return PartialView(ListPartialView, MapUserToViewModel);
不是有效的 JSON。
我遇到过人们使用类似
的例子RenderPartialViewToString(partialview, model);
然后把它扔到一个 JSON 对象中……但如果你问我,这太“hackish”了……难道没有更简单的方法来完成这个吗?
...以及代码:
// DashboardController.cs
[HttpPost]
public ActionResult AddWebsite(CreateWebsiteViewModel website)
{
if (!ModelState.IsValid)
{
throw new HttpException(400, "Client-side validation failed.");
}
if (string.IsNullOrWhiteSpace(website.URL))
{
throw new ArgumentNullException("URL", "The URL cannot be empty nor contain only whitespaces.");
}
using (_session.BeginTransaction())
{
_session.Query(new AddWebsite(_contextProvider.GetUserSession.UserId, website.URL));
_session.Transaction.Commit();
}
return PartialView(ListPartialView, MapUserToViewModel);
}
// MyJs.js
$("#testform").live('submit', function () {
var test = { URL: $("#URL").val() };
$.ajax({
url: "/Dashboard/AddWebsite",
type: "POST",
data: JSON.stringify(test),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert("TRIG");
$("#content").html(data);
},
error: function () {
alert("Error");
}
});
return false;
});
提前致谢!
【问题讨论】:
标签: javascript asp.net asp.net-mvc ajax