在Asp.net MVC中已經有一個正常的CRUD腳手架,但我使用自己的代碼來保存帖子。如何在ASP.NET MVC 5中執行編輯操作?
Abstract.cs(型號)
public class Abstract
{
public int ID { get; set; }
[Required]
public ApplicationUser Member { get; set; }
[Required]
public string AbstractTitle { get; set; }
[Required]
public string AbstractAim { get; set; }
[Required]
[StringLength(300)]
public string AbstractDetails { get; set; }
[Required]
public string Author { get; set; }
public string CoAuthor { get; set; }
}
AbstractController.cs
public class AbstractsController : Controller
{
private readonly ApplicationDbContext _context;
public AbstractsController()
{
_context = new ApplicationDbContext();
}
[Authorize]
public ActionResult Create()
{
return View();
}
[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(AbstractFormViewModel viewModel)
{
if (!ModelState.IsValid)
return View("Create", viewModel);
var memberId = User.Identity.GetUserId();
var member = _context.Users.Single(u => u.Id == memberId);
var abs = new Abstract
{
Member = member,
AbstractTitle = viewModel.AbstractTitle,
AbstractAim = viewModel.AbstractAim,
AbstractDetails = viewModel.AbstractDetails,
Author = viewModel.Author,
CoAuthor = viewModel.CoAuthor
};
_context.Abstracts.Add(abs);
_context.SaveChanges();
return RedirectToAction("Index", "Home");
}
}
這是我的控制器和模型。在這裏,我試圖實現我自己的方式來執行編輯和更新的東西。 在這裏我真的很困惑如何執行此創建操作的編輯材料。
public ActionResult Edit(int id)
{
var customer = _context.Abstracts.SingleOrDefault(c => c.Id == id);
if (customer == null)
return HttpNotFound();
var memberId = User.Identity.GetUserId();
var member = _context.Users.Single(u => u.Id == memberId);
var viewModel = new Abstract
{
Member = member,
AbstractTitle = viewModel.AbstractTitle,
AbstractAim = viewModel.AbstractAim,
AbstractDetails = viewModel.AbstractDetails,
Author = viewModel.Author,
CoAuthor = viewModel.CoAuthor
};
return View("CustomerForm", viewModel);
}
但是,這不起作用,請建議或提供一個解決方案,編寫一個編輯操作。
你爲什麼不使用'AbstractFormViewModel'你'編輯()'方法? –
什麼是不工作? (並且我假設'db.Entry(Abstract).'是一個拼寫錯誤,並且確實是'db.Entry(abstract).' - 在這兩種方法中的'return View'中都是這樣。 –
將您的代碼放在問題中,而不是註釋它不可能讀取,尤其是當你沒有格式化時) –