【发布时间】:2023-04-05 15:41:01
【问题描述】:
我刚刚开始使用带有 ASP.NET Web API 的 Sencha ExtJS 5。
其中一个基本示例是创建模型并将数据发布到“代理”。
http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext.data.Model-cfg-proxy
我的 ExtJS 代理正在发布到 ASP.NET Web API,它在 Id 列中需要 NULL 值,以便作为新记录插入到 db。
问题在于 ExtJS 的“create”函数会自动为模型 id 列生成一个字符串 id(例如 SessionModel-1)。
我附上了保存请求负载的屏幕截图。
Ext.define("SessionModel", {
extend: "Ext.data.Model",
fields: [
{ name: 'id', type: 'int' },
{ name: 'title', type: 'string' },
{ name: 'approved', type: 'bool' , defaultValue : false }
],
proxy: {
type: 'rest',
url: '/api/Session'
}
});
var mySession1 = Ext.create("SessionModel", {
title: 'C++',
approved: true,
});
mySession1.save();
Session.cs - 模型已定义:
namespace WebApplication1.Models
{
public class Session
{
public int Id { get; set; }
public string Title { get; set; }
public bool Approved { get; set; }
}
}
SessionController.cs - 控制器 POST :
// POST api/Session
[ResponseType(typeof(Session))]
public IHttpActionResult PostSession(Session session)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Sessions.Add(session);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = session.Id }, session);
}
如何阻止 ExtJS 自动生成 id 或使用“保存”的正确方法是什么?
【问题讨论】:
-
在 ModelState 检查之前设置 session.Id = 0...
标签: asp.net asp.net-mvc extjs extjs4 extjs5