我试图将两个参数发送到我的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();
}
}
重新加载视图。但是没有更新数据库。并且没有错误发生。
答案 0 :(得分:3)
正如其他人在评论中所说,您没有调用UpdateChapterPosition操作。我还要添加,而不是使用html锚标记,尝试使用Html.ActionLink
,如下所示:
@Html.ActionLink("Move under this", "UpdateChapterPosition", "Chapter", new { chapterId = 27, parentId = 26 })