我有一些asp.net mvc方法,它们有很多共同的代码行。
所以我试着写一个通用的方法来消除代码重用,但是我没有收到结果。你能告诉我问题出在哪里吗?
//初始代码:
public ActionResult Details(int? id) {
if (id == null)
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
Product product = db.Products.Find(id);
if (product == null)
return HttpNotFound();
return View(product);
}[HttpGet]
public ActionResult Edit(int? id) {
if (id == null)
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
Product product = db.Products.Find(id);
if (product == null)
return HttpNotFound();
return View(product);
}[HttpGet]
public ActionResult Delete (int? id) {
if (id == null)
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
Product product = db.Products.Find(id);
if (product == null)
return HttpNotFound();
return View(product);
}//最终代码:
public void Details(int? id) {
Common(id);
}
[HttpGet]
public void Edit(int? id) {
Common(id);
}
[HttpGet]
public void Delete (int? id) {
Common(id);
}
public ActionResult Common(int? Id) {
if (Id == null)
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
Product product = db.Products.Find(Id);
if (product == null)
return HttpNotFound();
return View(product);
}输出时出现空白屏幕
发布于 2019-07-21 16:59:41
您无意中或有意地将调用者更改为返回void。调用者的签名不应更改。它们仍应返回ActionResults:
public ActionResult Details(int? id) {
return Common(id);
}
[HttpGet]
public ActionResult Edit(int? id) {
return Common(id);
}
[HttpGet]
public ActionResult Delete (int? id) {
return Common(id);
}https://stackoverflow.com/questions/57131700
复制相似问题