PlT*_*lor 6 asp.net-mvc-3 knockout.js
我是淘汰赛的新手,我很难将我的数据从Knockout恢复到我的服务器.我不断收到"没有为此对象定义的无参数构造函数"的错误.任何帮助,将不胜感激.
我的Knockout模型如下
function partSummary(item) {
var self = this;
self.ID = ko.observable(item.ID);
self.serialNumber = ko.observable(item.SerialNumber);
self.description = ko.observable(item.Description);
self.manufacturer = ko.observable(item.Manufacturer);
self.creationDate = ko.observable(item.DateCreated);
self.active = ko.observable(item.IsActive);
}
Run Code Online (Sandbox Code Playgroud)
我将数据发送回服务器的代码是
self.savePart = function() {
$.ajax("/PartKO/UpdatePart", {
data: ko.toJSON(self.partDetails),
type: "post",
contentType: 'application/json',
dataType: 'json'
});
};
Run Code Online (Sandbox Code Playgroud)
我的MVC控制器是
[HttpPost]
public JsonResult UpdatePart(PartDetail part)
{
var dbPart = new PartGenericAccessor();
dbPart.ID = part.ID;
dbPart.Load();
dbPart.Description = part.Description;
dbPart.IsActive = Convert.ToBoolean(part.IsActive);
var manufacturers = ManufacturerAccessor.LoadAll<ManufacturerAccessor>();
if (part.Manufacturer != null)
{
var manufacturer = (from p in manufacturers where p.Name == part.Manufacturer select p.ID).First();
dbPart.ManufacturerID = manufacturer;
}
dbPart.Save();
return Json("Success!!");
}
Run Code Online (Sandbox Code Playgroud)
而我的服务器端模型是
public class PartDetail
{
public PartDetail(Guid id, string serial, string description, string manufacturer, DateTime created, bool isActive)
{
ID = id;
SerialNumber = serial;
Description = description;
Manufacturer = manufacturer;
DateCreated = created.ToShortDateString();
IsActive = isActive.ToString(CultureInfo.InvariantCulture);
}
public Guid ID { get; set; }
public string SerialNumber { get; set; }
public string Description { get; set; }
public string Manufacturer { get; set; }
public string DateCreated { get; set; }
public string IsActive { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
您需要为MVC模型提供无参数构造函数:
public class PartDetail
{
public PartDetail()
{ ... }
}
Run Code Online (Sandbox Code Playgroud)
当数据从服务器回来,MVC将创建一个空的对象,使用参数的构造函数,然后调用"设置"方法来设置每个匹配的数据来属性.
| 归档时间: |
|
| 查看次数: |
3284 次 |
| 最近记录: |