我试图弄清楚如何在我的应用程序的同一页面上拥有一个编辑功能和一个删除功能。目前我的控制器看起来像这样:
[HttpPost]
public ActionResult Edit(CodeTagViewModel codeTagViewModel, FormCollection collection)
{
if (ModelState.IsValid)
{
List<Tag> tagsToAdd = new List<Tag>();
codeTagViewModel.Tags = db.Tags.ToList();
foreach (Tag tag in codeTagViewModel.Tags)
{
if (collection[tag.TagID.ToString()].ToString().Contains("true"))
{
tagsToAdd.Add(tag);
}
}
codeTagViewModel.SelectedTags = tagsToAdd;
Code code = db.Code.Find(codeTagViewModel.CodeID);
MapModelToCode(codeTagViewModel, code);
db.Entry(code).State = EntityState.Modified;
db.SaveChanges();
return View(codeTagViewModel);
}
return RedirectToAction("Index");
}
[HttpPost, ActionName("Delete")]
public ActionResult Edit(CodeTagViewModel codeTagViewModel, FormCollection collection)
{
if (ModelState.IsValid)
{
List<Tag> tagsToAdd = new List<Tag>();
codeTagViewModel.Tags = db.Tags.ToList();
foreach (Tag tag in codeTagViewModel.Tags)
{
if (collection[tag.TagID.ToString()].ToString().Contains("true"))
{
tagsToAdd.Add(tag);
}
}
codeTagViewModel.SelectedTags = tagsToAdd;
Code code = db.Code.Find(codeTagViewModel.CodeID);
MapModelToCode(codeTagViewModel, code);
db.Code.Remove(code);
db.SaveChanges();
return View(codeTagViewModel);
}
return RedirectToAction("Index");
}
我的编辑视图中有两个按钮:
<p>
<input type="submit" value="Save" />
</p>
<p>
<input type="submit" value="Delete" />
</p>
我的视图模型如下所示:
public class CodeTagViewModel
{
public List<Tag> Tags { get; set; }
public List<Tag> SelectedTags { get; set; }
public int CodeID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime DateAdded { get; set; }
public DateTime LastUpdated { get; set; }
public string Project { get; set; }
public string CMS { get; set; }
public int DotNetVersion { get; set; }
public string Dependencies { get; set; }
public string Author { get; set; }
public string CodeFile { get; set; }
public string TFSLocation { get; set; }
}
目前删除按钮什么也没做,它根本没有点击代码。
我是 MVC 的新手,并试图弄清楚它是如何处理所有背景的,所以任何帮助都将不胜感激。
编辑:我还研究了路由方面并输入:
//
// POST: /Code/Edit/5
在删除功能上方(与编辑功能相同),仍然没有。