0

我的控制器中有这个方法:

[HttpPost]
public ActionResult Create(StatusMessage statusMessage, int foreignKey, int statusMessageType)
{
    //Do something
}

这就是我的 StatusMessage 模型的样子:

public abstract class StatusMessage 
{
    [Key]
    public int Id { get; set; }

    /// <summary>
    /// Message
    /// </summary>
    /// [Required]
    public string Description { get; set; }

    public DateTime CreationDate { get; set; }

    public int UseraccountId { get; set; }
    public virtual Useraccount Useraccount { get; set; }
}

我想通过 jquery ajax 向我的控制器发送一个帖子:

function sendForm(message, foreignKey, statusMessageType, target) {
    var statusMessage = {
      Description: "This is a test message"
    };
    $.ajax({
        url: target,
        type: "POST",
        contentType: 'application/json',
        data: JSON.stringify({
            statusMessage: statusMessage,
            foreignKey: foreignKey,
            statusMessageType: statusMessageType
        }),
        success: ajaxOnSuccess,
        error: function (jqXHR, exception) {
            alert(exception);
        }
    });
}

但是 POST 没有正确发送。通过测试,我已经发现问题出在 StatusMessage 类。如果我用字符串替换它,一切正常。

4

2 回答 2

1

为什么您将您的类定义为abstract,控制器将无法创建其实例

将您的班级定义为

 public class StatusMessage

信息http://www.codeproject.com/Articles/6118/All-about-abstract-classes

于 2013-04-16T07:55:05.613 回答
0

您的 ajax 帖子不起作用,因为StatusMessage它是一个抽象类,您(或控制器)无法创建它的实例。您应该将其设为具体类或从中派生另一个类。

于 2013-04-16T07:53:43.033 回答