dan*_*tch 9 jquery renderpartial asp.net-mvc-3
我已经阅读过这篇文章了,但是我不知道如何让它能够从用户那里获取数据.这是我正在使用的ajax jquery.我知道(或者至少认为)这个不能让人偏袒.但它一直有效,直到渲染失败.我认为这可能会有所帮助.
$.ajax(
{
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: "{'test':" + "'" + dateText + "'}",
dataType: 'json',
url: 'Site/Grab/',
success: function (result) {
alert('Success');
},
error: function (error) {
alert('Fail');
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的控制器
[HttpPost]
public ActionResult Grab(string test)
{
DateTime lineDate= Convert.ToDateTime(test);
List<Info> myInfo= GameCache.Data(lineDate);
return PartialView("_PartialView", myInfo);
}
Run Code Online (Sandbox Code Playgroud)
RPM*_*984 18
好的,有几件事要尝试:
1)dataType是ajax调用的预期结果.在您的情况下,您发送 JSON,但接收 HTML.该content-type参数指定您拥有的请求(以及您拥有的请求是否正确).所以数据类型应该是:
dataType: 'html',
Run Code Online (Sandbox Code Playgroud)
2)您需要序列化JSON.尝试抓取轻量级JSON库并进行字符串化:
var test = { test: 'testvalue' };
$.ajax {
...
data: JSON.stringify(test),
...
});
Run Code Online (Sandbox Code Playgroud)
比尝试使用quoatations强制使用JSON字符串要容易得多.创建一个常规JS变量,然后对其进行字符串化.
其余的代码看起来很好.
如果部分视图本身的HTML /标记出现问题,请在调试模式下运行,Visual Studio应停止在导致问题的标记行中.
Bonus提示:ASP.NET MVC 3包含内置的JSON模型绑定.因此,您可以创建与JSON对象的字段匹配的基本POCO,然后将其作为操作方法中的强类型对象接受:
[HttpPost]
public ActionResult Grab(MyJsonObject obj)
{
DateTime lineDate= Convert.ToDateTime(obj.test);
List<Info> myInfo= GameCache.Data(lineDate);
return PartialView("_PartialView", myInfo);
}
Run Code Online (Sandbox Code Playgroud)
由于你只发送一个参数,这是过度的 - 但如果你有超过2个,那么使用JSON POCO是值得的.
| 归档时间: |
|
| 查看次数: |
22967 次 |
| 最近记录: |