我有一个操作方法如下:
public ActionResult CreateNKITemplate(int id)
{
var goalcard = createNKIRep.GetGoalCardByID(id);
createNKIRep.CreateTemplate(goalcard);
return View();
}
此操作方法将在我的 GoalCard 实体中创建一个新的 GoalCard 对象,这意味着它基本上会生成一个 ID。
在 CreateTemplate 操作方法中,我想删除 return View();
并添加 return RedirectToAction
,以便它重定向到创建的新 GoalCard 对象 ID
我想将新的 GoalCard 对象 ID 重定向到:
public ActionResult Edit(int id)
{
// code..
}
我该怎么做?
基本上:复制并创建一个新对象,然后将新对象 ID 重定向到以 Id 作为参数的此编辑操作方法。
更新:
接受的答案解决方案:
public ActionResult CreateNKITemplate(int id)
{
var goalcard = createNKIRep.GetGoalCardByID(id);
var copygoalcard = createNKIRep.CreateTemplate(goalcard);
var GoalCardCopyID = copygoalcard.Id;
return RedirectToAction(
"Edit", // Action name
"CreateNKI", // Controller name
new { id = GoalCardCopyID }); // Route values
}
提前致谢!
最佳答案
嗯,RedirectToAction
的定义是。
protected internal RedirectToRouteResult RedirectToAction(
string actionName,
string controllerName,
Object routeValues
)
所以我们只填写您的值。
RedirectToAction(
"Edit", // Action name
"GoalCardController", // Controller name
new { id = gcId } // Route values
)
请注意,上面的代码假定您的 Controller 名为 GoalCardController
,并且 id 存储在名为 gcId
的变量中。
关于c# - 在 MVC 中的实体中创建新对象的操作方法中的 RedirectToAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10533066/