我有一些 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); }输出时出现空白屏幕
1 回答

翻阅古今
TA贡献1780条经验 获得超5个赞
您无意或有意地将调用者更改为 return 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);
}
- 1 回答
- 0 关注
- 104 浏览
添加回答
举报
0/150
提交
取消