【问题标题】:ActionResult not calling to partialView when calls from Ajax hit in ASP.Net MVC当来自 Ajax 的调用在 ASP.Net MVC 中命中时,ActionResult 未调用 partialView
【发布时间】:2015-12-28 12:48:33
【问题描述】:

我想在使用 ajax 命中调用 ActionResult 后调用部分视图,并将部分视图数据渲染到主视图中。但是当调用 ActionResult 时,它的调用完美但没有调用 Partial 视图并在 ajax 中返回错误消息。 Ajax方法如下:

function postComment() {
    var comment = $("#addComment").val();
    var pathname = window.location.pathname.split("/");
    var title = pathname[pathname.length - 1];
    alert(comment);
    jQuery.ajax({
        type: 'POST',
        dataType: "html",
        url: "/Blogger/PostComment",
        data: JSON.stringify({ 'comment': comment, "title": title ,"type":"Blogs"}),
        contentType: "application/json; charset=utf-8",
        success: function (result) {
            $("#divAnswerSchemeContainer1").html(result);
        },
        error: function (e) {
            alert("error");
        }
    });
}

动作结果是:

public ActionResult PostComment(string comment, string title, string type) {
            return PartialView("~/Views/Shared/_partialShowComments", db.SocialMediaComments.ToList());
        }

而局部视图是:

@model IEnumerable<DataModel.SocialMediaComment>

<div id="divAnswerSchemeContainer1">
@foreach (var item in Model)
{
    @item.Comment
    @item.CreatedDate
    @item.BlogeName
}
</div>

使用 ajax 调用的操作结果很好,但部分视图不能很好地命中并从 ajax 返回错误消息。

浏览器控制台显示错误信息:

"NetworkError: 500 Internal Server Error - http://localhost:6767/Blogger/PostComment" 

【问题讨论】:

  • 单步执行您的代码,查看错误发生的确切位置以及确切的错误是什么。
  • db在哪里定义?在 PostComment 操作中放置一个断点以查看实际错误。
  • 另外,我认为你不需要这个 contentType: "application/json; charset=utf-8"
  • 将数据类型更改为 json。由于您指定 html 数据发布但将其作为 JSON 发送,因此无法正确映射。

标签: asp.net ajax asp.net-mvc


【解决方案1】:

首先你必须创建视图模型。

 public class Post{
    public string comment {get;set;}
    public string title {get;set;}
    public string type {get;set;}
 }

你的动作控制器就像。

public ActionResult PostComment(Post post) {
        return PartialView("~/Views/Shared/_partialShowComments", db.SocialMediaComments.ToList());
    }

【讨论】:

    猜你喜欢
    • 2018-09-13
    • 2022-08-03
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 2016-09-16
    • 2012-01-04
    • 1970-01-01
    相关资源
    最近更新 更多