我正在使用如下所示的重定向语句来转到带参数
的特定操作return RedirectToAction(nameof(ActivityTypeController.Create), "ActivityType", new { selectedID = 34 });
我的行动路线配置是
[Route("Create/{selectedID}")]
public IActionResult Create(int selectedID)
我的期望
http://localhost:27945/ActivityType/Create/34
但它返回
http://localhost:27945/ActivityType/Create?selectedID=34
我也用
RouteData.Values.Remove("selectedID")
但没有改变!
我正在使用MVC6和Asp.net 5模板
更新
我的重定向动作如下所示
[Route("Create/{selectedID}")]
public IActionResult Create(int selectedID)
{
BL.BO.ActivityTypeBO bo = new BL.BO.ActivityTypeBO();
ViewBag.Title = "title1";
ViewBag.Description = "some desc";
var data = bo.GetAll().Where(p => p.ParentID == null).OrderBy(p => p.Title);
SelectList parents;
parents = new SelectList(data, "ID", "Title", selectedID);
ViewBag.Parents = parents;
return View();
}
我在重定向到操作之前使用 RoutDate
RouteData.Values.Remove("selectedID");
return RedirectToAction(nameof(ActivityTypeController.Create), "ActivityType", new { selectedID = 34 });
答案 0 :(得分:0)
MVC会像查询字符串一样添加参数。所以,在像你这样的情况下,你需要将它附加到RedirectToAction方法的动作参数。下面是代码
return RedirectToAction(nameof(ActivityTypeController.Create) + "/34" , "ActivityType");