Kendo ui 剑道网格能否成功地使用一个存储过程进行GET过程和另一个存储过程进行更新?
我的问题涉及使用实体框架/Kendo网格和Web API 2控制器,而不使用ASP.NET MVC/Razor。我所有的代码要么是C#in控制器,要么是直接的HTML/JavaScript 剑道网格似乎更适合直接使用表/视图,而不是使用存储过程,我的评估是否正确 我试图在EF中使用一个带有自定义操作名称的存储过程来返回Kendo ui 剑道网格能否成功地使用一个存储过程进行GET过程和另一个存储过程进行更新?,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我的问题涉及使用实体框架/Kendo网格和Web API 2控制器,而不使用ASP.NET MVC/Razor。我所有的代码要么是C#in控制器,要么是直接的HTML/JavaScript 剑道网格似乎更适合直接使用表/视图,而不是使用存储过程,我的评估是否正确 我试图在EF中使用一个带有自定义操作名称的存储过程来返回IEnumerable,它可以很好地填充网格,但当我尝试点击“保存更改”按钮时,它会尝试执行POST和PUT(我确实认为它正在执行POST,因为其中一行没有定义主键) 我还应该提到
IEnumerable
,它可以很好地填充网格,但当我尝试点击“保存更改”按钮时,它会尝试执行POST和PUT(我确实认为它正在执行POST,因为其中一行没有定义主键)
我还应该提到,我认为模型并不完全相同,因为在网格中返回的字段不一定与我的保存/更新过程中触发的内容1:1相关。我在GET中返回了更多字段,并且在kendoDataSource中指定了模型,但是我可以自定义并选择在单击“保存更改”时返回的内容吗
在调试期间,我在network inspector中看到了正确的行,但是当我在POST方法中看到它在Web API 2控制器中运行时,当我将鼠标悬停在返回的对象上时,我甚至看不到任何值,这可能是另一个问题
所以我的核心问题是
提前感谢您的更新。存储过程非常易于使用。你会有一个类似的方法
public ActionResult Products_Update([DataSourceRequest]DataSourceRequest request, Product product)
在这里,您可以找出所有属性,并将它们用作存储过程中的参数
对于选择,则很难避免使用表。这是因为所有分页和排序都基于基本上是sql的一部分的IQueryable。然后在扩展方法中为它提供分页和排序。您有这样一种方法:
public ActionResult Products_Read([DataSourceRequest]DataSourceRequest request)
当然,您可以从请求中提取所有内容,并手动处理排序和分页,但对于视图或表,您只需调用扩展方法即可获取所有内容:
var result = products.ToDataSourceResult(request);
所以,我解决了我的问题 1.)在控制器中,我需要一个与此类似的方法声明
public IHttpActionResult UpdateProcedure([FromBody]IEnumerable<somevalue> models)
及
及
这些东西的组合至少使我能够看到WebAPI2控制器中的模型和值
感谢您的帮助。因为其中一行没有定义主键-这是您应该立即解决的第一个问题!每个表都需要有一个适当的主键-没有讨论您是否使用自动递增字段?如果是这样,您可能需要在插入后“重新读取”数据集,或者您可以在客户端使用dup密钥。
contentType: "application/json; charset=utf-8",
batch: true
parameterMap: function(options, operation) {
if (operation !== "read" && options) {
return JSON.stringify(options.models);
}
}