asp.net-mvc-3 – 使用Jquery Ajax渲染部分视图与变量数据

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – 使用Jquery Ajax渲染部分视图与变量数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经阅读了 this post,但是我不确定知道使用它从用户那里获取数据.这是我正在使用的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');
         }
      });

这是我的控制器

[HttpPost]
    public ActionResult Grab(string test)
    {
        DateTime lineDate= Convert.ToDateTime(test);
        List<Info> myInfo= GameCache.Data(lineDate);
       return PartialView("_PartialView",myInfo);
    }

解决方法

好的,几件事要尝试:

1)dataType是ajax调用的预期结果.在你的情况下,你发送JSON,但是接收HTML. content-type参数指定请求,你有(和你有什么是正确的).所以数据类型应该是:

dataType: 'html',

2)你需要序列化JSON.尝试抓取轻量级的JSON库并且stringify’ing:

var test = { test: 'testvalue' };
$.ajax {
   ...
   data: JSON.stringify(test),...
});

比使用quoatations强制JSON字符串要容易得多.创建一个常规的JS变量,然后对其进行字符串化.

你的其他代码看起来不错.

如果这是部分视图本身的HTML /标记问题,请以调试模式运行,并且Visual Studio应该停止在导致问题的标记中.

奖金提示: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);
}

由于你唯一发送一个参数,它是过度的 – 但如果你有超过2,那么值得使用JSON POCO.

猜你在找的asp.Net相关文章