将两个参数发送到mvc4控制器时出现问题

时间:2013-11-17 16:54:30

标签: c# asp.net-mvc asp.net-mvc-4

我试图将两个参数发送到我的Chapter控制器。然后让模型进行一些更新,然后返回到我开始的视图。

我现在拥有的是:


Move.cshtml:

<div>
    <a href='/Chapter/Move?chapterId=27&parentId=26'>Move under this</a>
</div>

ChapterController.cs:

public ActionResult Move(int chapterId)
{
    if (chapterId == 0)
    {
        return RedirectToAction("Index", "Home");
    }

    var model = new Chapter { _id = chapterId };

    return View(model);
}

public ActionResult UpdateChapterPosition(int chapterId, int parentId)
{
    Chapter.updateChapterPosition(chapterId, parentId);

    return RedirectToAction("Chapter", "Move", new { chapterId = chapterId });
}

Chapter.cs:// Model

public int _id { get; set; }
public int parentId { get; set; }

public static void updateChapterPosition(int chapterId, int parentId)
{
    var con = new    SqlConnection(ConfigurationManager.ConnectionStrings["Database"].ConnectionString);
    con.Open();

    using (var command = new SqlCommand("update Subjects set fk_subfolderTo=@parent where _id=@id", con))
    {
        command.Parameters.AddWithValue("id", chapterId);
        command.Parameters.AddWithValue("parent", parentId);
        command.ExecuteNonQuery();
    }
}

重新加载视图。但是没有更新数据库。并且没有错误发生。

1 个答案:

答案 0 :(得分:3)

正如其他人在评论中所说,您没有调用UpdateChapterPosition操作。我还要添加,而不是使用html锚标记,尝试使用Html.ActionLink,如下所示:

@Html.ActionLink("Move under this", "UpdateChapterPosition", "Chapter", new { chapterId = 27, parentId = 26 })