c# - 在 MVC 中的实体中创建新对象的操作方法中的 RedirectToAction

标签 c# asp.net asp.net-mvc asp.net-mvc-3 redirecttoaction

我有一个操作方法如下:

    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/

相关文章:

c# - 如何通过asp.net mvc c#获取浏览网站的客户端mac地址

asp.net-mvc - ASP.NET MVC应用程序中的错误

c# - 如何处置在任务中使用的 MemoryStream?

c# - Entity Framework 中的异步等待支持?

c# - 通用应用程序MySQLConnector队列执行错误

c# - 带触发器的 UpdateProgress 不起作用

javascript - 如何在浏览器中运行javascript代码

c# - C# 是否对事件使用任何脚本语言?

c# - 禁用打印对话框弹出

javascript - 错误: The input is not a valid Base-64 string