asp.net-mvc – ASP.NET MVC:从一个视图重定向到另一个视图
发布时间:2020-12-16 03:59:28 所属栏目:asp.Net 来源:网络整理
导读:您好我使用以下代码从kendo网格重定向到另一个页面(查看): @(Html.Kendo().GridWM.ViewModels.StockReceiptsGridViewModel() .Name("Grid") .ToolBar(toolbar = toolbar.Template("a class='k-button k-button-icontext' onclick='addMaterialPopup()' href
您好我使用以下代码从kendo网格重定向到另一个页面(查看):
@(Html.Kendo().Grid<WM.ViewModels.StockReceiptsGridViewModel>() .Name("Grid") .ToolBar(toolbar => toolbar.Template("<a class='k-button k-button-icontext' onclick='addMaterialPopup()' href='#'></span>Create Stock Receipt</a>")) .Columns(columns => { columns.Bound(p => p.StockReceiptID); columns.Bound(p => p.SupplierName); columns.Bound(p => p.Product); columns.Bound(p => p.Dimensions); columns.Bound(p => p.Quantity); columns.Bound(p => p.QuantityReserved); columns.Bound(p => p.PurchaseNumber); columns.Bound(p => p.Cost); columns.Bound(p => p.PhotosLink).Title("").ClientTemplate("<a href='/Photos/index?StockReceiptID=#=StockReceiptID#'>#=GetText()#</a>"); columns.Command(command => command.Custom("Edit").Click("editreceipt")); }) .DataSource(dataSource => dataSource .Ajax() .Batch(false) .Model(model => model.Id(p => p.StockReceiptID)) .Read(read => read.Action("Read","StockReceiptsGrid").Data("ExtraData")) ) ) 使用Javascript: function editreceipt(e) { e.preventDefault(); var dataItem = this.dataItem($(e.currentTarget).closest("tr")); var stockReceiptId = dataItem.StockReceiptID; window.location.href = "@Url.Action("Update","StockReceipt")"+"/"+stockReceiptId; // Problem code... } StockReceipt控制器上的接收方法是: public ActionResult Update(int stockReceiptId) { var stockReceipt = _stockReceiptRepository.GetAllStockReceipts().ToList().Where(r => r.StockReceiptID == stockReceiptId); var model = new StockReceiptViewModel(); model.Notes = stockReceipt.First().Notes; return View("Index",model); } 这是我的路线配置: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default",url: "{controller}/{action}/{id}",defaults: new { controller = "Home",action = "Index",id = UrlParameter.Optional } ); } 问题: ..是上面的Javascript代码没有重定向,它带我到这个URL:http:// localhost:50439 / StockReceipt / 6 并使用此错误报告“黄色死亡屏幕”: 参数字典包含’WorcesterMarble.Controllers.StockReceiptController’中方法’System.Web.Mvc.ActionResult Update(Int32)’的非可空类型’System.Int32’的参数’stockReceiptId’的空条目.可选参数必须是引用类型,可空类型,或者声明为可选参数. 其中6是ID. 如果我删除id元素变为这样: window.location.href = "@Url.Action("Update","StockReceipt")" 它工作,但我需要ID,因为我想在目标视图中加载选定的’ViewModel’. 我不知道我做错了什么?! 我试过用这个,但无济于事: window.location.href = @Url.RouteUrl("Default",new { @Controller = "StockReceipt",@Action = "Update"}) + '//' + stockReceiptId; 解决方法
解决方式如下:
function editreceipt(e) { e.preventDefault(); var dataItem = this.dataItem($(e.currentTarget).closest("tr")); var stockReceiptId = dataItem.StockReceiptID; window.location.href = "@Url.Action("Update","StockReceipt")?stockReceiptId=" + stockReceiptId; } 更多细节here (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 如何在glimpse / Asp.NET MVC中显示控制器使用的
- 在ASP.NET中将HTML转换为PDF时保持CSS样式
- 有没有相当于PrimeFaces for ASP.NET的东西?
- asp.net-mvc – FluentValidation可以做复选框吗
- ASP.NET变量范围
- asp.net – 如何获得Url.Action使用正确的端口号
- asp.net-mvc-3 – 无法在MVC3 HTML Helper中获取
- asp.net – 我可以通过编程方式禁用更新面板吗?
- asp.net-mvc – 如何强制Razor使Editorfor输入fl
- asp.net-mvc – 使用Web API不检查的并发检查
热点阅读