我的模特
Ext.define('Movie.model.MovieModel', {
extend: 'Movie.model.Base',
fields: [
{ name: 'Movie_id', type: 'int' },
{ name: 'Movie_name', type: 'string' },
{ name: 'Movie_details', type: 'string' },
{ name: 'Movie_release', type: 'string'},
{ name: 'Movie_url', type: 'string' },
{ name: 'Movie_price', type: 'int' },
{ name: 'Rent_day', type: 'string' }
]
});
我的店铺带URL
Ext.define('Movie.store.MovieStore', {
extend: 'Ext.data.Store',
alias: 'store.movie',
storeId: 'movieStore',
model: 'Movie.model.MovieModel',
Fields: ['Movie_id', 'Movie_name', 'Movie_details', 'Movie_release', 'Movie_url', 'Movie_price'],
proxy: {
type: 'rest',
url:'/api/Movies',
disableCaching: true,
useDefaultXhrHeader: false,
api: {
create: 'https://localhost:44369/Movies/AddMovie',
read: 'https://localhost:44369/Movies/GetMovie',
update: 'https://localhost:44369/Movies/EditMovie',
destroy: 'https://localhost:44369/Movies/DeleteMovie'
},
reader:{
type:'json',
headers: { 'Accept': 'application/json' }
},
writer: {
type: 'json',
writeAllFields: false,
}
}, autoLoad: true
});
删除记录控制器
var data = store.findRecord('Movie_name', name);
var id = data.get('Movie_id');
store.remove(store.findRecord('Movie_id',id,0,false,false,false));
store.sync();
在我的web API中
[Route("Movies/DeleteMovie/{id}")]
[EnableCors("*", "*", "*")]
[System.Web.Http.AcceptVerbs("Delete", "Post","Get")]
[System.Web.Http.HttpDelete]
public IHttpActionResult DeleteMovie(int id)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
Movie movie = db.Movie.Find(id);
db.Movie.Remove(movie);
db.SaveChanges();
return Ok(movie);
}
错误
但所有的方法都不起作用。我在console.log
中得到以下错误:
$id
:1
留言:请求无效。
留言内容:parameters字典包含MovieRentals.Controllers.MoviesController
中方法System.Web.Http.IHttpActionResult DeleteMovie(Int32)
的非空类型System.Int32
的参数id
的空条目。可选参数必须是引用类型、可空类型或声明为可选参数。
从extjs发送请求的URL是https://localhost:44369/Movies/DeleteMovie/MovieModel-75?_dc=1682656495712
而不是https://localhost:44369/Movies/DeleteMovie/123
1条答案
按热度按时间0mkxixxg1#
默认情况下,Ext JS使用名为
id
的字段作为模型示例的唯一标识符。由于模型中的标识符被不同地调用(Movie_id
),ExtJS将为每个模型添加一个自动生成的标识符(例如MovieModel-75
),并在REST请求中传递。这与用于向在客户端创建的、在服务器上还没有标识符的幻影记录添加标识符的机制相同。您可以轻松地设置要与模型一起使用的自定义id属性。这样,你就不会告诉ExtJS use
id
,而是一个不同的字段。只需将此添加到模型定义中: