如何在MVC中退出功能?

时间:2012-08-01 09:57:04

标签: c# asp.net-mvc

我想在MVC应用程序中使用类似Exit sub之类的操作,而我正在使用c#语言。

当我输入return时,它显示错误。它要求强制ActionResult

    [HttpPost]
    public ActionResult Create(Location location)
    {
        if (ModelState.IsValid)
        {
            Validations v = new Validations();
            Boolean ValidProperties = true;
            EmptyResult er;

            string sResult = v.Validate100CharLength(location.Name, location.Name);
            if (sResult == "Accept")
            {
                ValidProperties = true;
            }
            else
            {
    //What should I write here ? 
    //I wan to write return boolean prperty false 
            // When I write return it asks for the ActionResult
            }

             if (ValidProperties == true)
             {
                 db.Locations.Add(location);
                 db.SaveChanges();
                 return RedirectToAction("Index");
             }
        }

        ViewBag.OwnerId = new SelectList(
                            db.Employees, "Id", "FirstName", location.OwnerId);
        return View(location);
    }

2 个答案:

答案 0 :(得分:1)

如果我理解你在方法中做了什么,你可以尝试:

[HttpPost]
public ActionResult Create(Location location)
{
    if (ModelState.IsValid)
    {
        Validations v = new Validations();
        Boolean ValidProperties = true;
        EmptyResult er;

        string sResult = v.Validate100CharLength(location.Name, location.Name);
        if (sResult == "Accept")
        {
            ValidProperties = true;
        }
        else
        {
            ValidProperties = false;
            ModelState.AddModelError("", "sResult is not accepted! Validation failed");
        }

         if (ValidProperties == true)
         {
             db.Locations.Add(location);
             db.SaveChanges();
             return RedirectToAction("Index");
         }
    }

    ViewBag.OwnerId = new SelectList(
                        db.Employees, "Id", "FirstName", location.OwnerId);
    return View(location);
}

顺便说一下,在这种方法中有很多地方可以重构。

答案 1 :(得分:0)

如果声明一个方法返回除void之外的任何类型,则不能使用return指令退出它,并且必须提供返回类型。返回null通常就是答案。但是在MVC中,您可能希望返回一些能够向用户指出出现问题的内容。