我的控制器中有这个方法:
[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类。如果我用字符串替换它,一切正常。
答案 0 :(得分:1)
为什么您将类定义为 abstract ,控制器将无法创建其实例
将您的课程定义为
public class StatusMessage
获取信息http://www.codeproject.com/Articles/6118/All-about-abstract-classes
答案 1 :(得分:0)
您的ajax帖子无效,因为 StatusMessage
是一个抽象类而您(或控制器)无法创建它的实例。您应该将其作为具体类或从中派生另一个类。