gpt4 book ai didi

c# - 在 MVC 中向我的编辑 Controller 添加删除功能

转载 作者:行者123 更新时间:2023-11-30 22:21:15 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何在我的应用程序的同一页面中拥有编辑功能和删除功能。目前我的 Controller 看起来像这样:

    [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");
}

我的编辑 View 中有两个按钮:

    <p>
<input type="submit" value="Save" />
</p>
<p>
<input type="submit" value="Delete" />
</p>

我的 View 模型如下所示:

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

在删除功能之上(与编辑功能相同)仍然没有。

最佳答案

问题:

两个按钮都提交父表单,这在您的解决方案中可能是相同的。

背景信息:

如果您通过按钮提交(无论哪个按钮),您的 HTML 元素位于表单元素内。浏览器将检查表单属性中给出的 url。

解决方案:

将 EDIT 放在单独的表格中 - 引用编辑 url(与整个模型)然后创建一个单独的表单 - 引用删除 url - 使用 ModelID 和删除按钮。 (不是整个模型!)

改变你的删除功能,让它只需要ModelID作为参数(而不是整个模型)。

开始吧:)

关于c# - 在 MVC 中向我的编辑 Controller 添加删除功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14499753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com