加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 19:40:55 所属栏目:asp.Net 来源:网络整理
导读:我已经阅读了 this post,但是我不确定知道使用它从用户那里获取数据.这是我正在使用的ajax jquery.我知道(或至少认为)这不能渲染一部分.但它一直工作,直到渲染失败.我以为可能有帮助. $.ajax( { type: 'POST',contentType: 'application/json; charset=utf-8
我已经阅读了 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读