首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >方法调用方法

方法调用方法
EN

Stack Overflow用户
提问于 2019-07-21 16:53:15
回答 1查看 60关注 0票数 0

我有一些asp.net mvc方法,它们有很多共同的代码行。

所以我试着写一个通用的方法来消除代码重用,但是我没有收到结果。你能告诉我问题出在哪里吗?

//初始代码:

代码语言:javascript
复制
    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);
            }
代码语言:javascript
复制
[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);
        }
代码语言:javascript
复制
[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);
        }

//最终代码:

代码语言:javascript
复制
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);
        }

输出时出现空白屏幕

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-21 16:59:41

您无意中或有意地将调用者更改为返回void。调用者的签名不应更改。它们仍应返回ActionResults:

代码语言:javascript
复制
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);
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57131700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档