1

我的页面有一个搜索框,其中有几个单选按钮。根据选择的单选按钮将取决于显示的视图。

但是,我不知道如何返回视图。

我的代码是

 public ActionResult Index(string jobType)
    {
        if (jobType.ToLower() == "this")
            CandidateResults();
        else
            JobResults();
    }

    private ActionResult CandidateResults()
    {
        var model = //logic
        return View(model);
    }
    private ActionResult JobResults()
    {
        var model = //logic
        return View(model);
    }

但这不会在屏幕上显示任何内容(白页)。这是有道理的,但我不想返回索引,我想返回一个新页面(称为 JobResults 或 Candidates)并为这两个新页面创建一个视图,但是当我右键单击我的方法时(JobResults() 或Candidates()) 我没有添加视图的选项。

在这个阶段我迷路了,任何人都可以提供建议。

4

5 回答 5

3

从 Index 返回视图或重定向到 CandidateResults 或 JobResults 操作。

public ActionResult Index(string jobType)
{
    if (jobType.ToLower() == "this")
        return CandidateResults();
    else
        return JobResults();
}

private ActionResult CandidateResults()
{
    var model = //logic
    return View(model);
}
private ActionResult JobResults()
{
    var model = //logic
    return View(model);
}
于 2013-02-15T14:31:19.927 回答
2

尝试这个

public ActionResult Index(string jobType)
{
    return (jobType.ToLower() == "this") ?
        RedirectToAction("CandidateResults") :
        RedirectToAction("JobResults");
}

private ActionResult CandidateResults()
{
    var model = //logic
    return View(model);
}
private ActionResult JobResults()
{
    var model = //logic
    return View(model);
}
于 2013-02-15T14:34:13.867 回答
1

在您的私有方法中,您必须指定要显示的实际视图。

public ActionResult Index(string jobType)
{
    if (jobType.ToLower() == "this")
        CandidateResults();
    else
        JobResults();
}

private ActionResult CandidateResults()
{
    var model = //logic
    return View("CandidateResults", model);
}
private ActionResult JobResults()
{
    var model = //logic
    return View("JobResults", model);
}

发生这种情况是因为视图引擎的工作方式。当前请求的动作名称总是Index在调用索引函数时。即使您调用另一个方法,视图引擎也会使用当前操作的名称,而不是当前正在执行的函数的名称。

于 2013-02-15T14:35:01.543 回答
0

只需要将用户重定向到正确的控制器方法,该方法将返回View如下:

public ActionResult Index(string jobType)
    {
        if (jobType.ToLower() == "this")
            return RedirectToAction("CandidateResults","ControllerName");
        else
            return RedirectToAction("JobResults","ControllerName");
    }
于 2013-02-15T14:34:45.317 回答
0
public ActionResult Index(string jobType)
{
    if (jobType.ToLower() == "this")
        return RedirectToAction("CandidateResults");

    return RedirectToAction("JobResults");
}

private ActionResult CandidateResults()
{
    var model = //logic
    return View(model);
}
private ActionResult JobResults()
{
    var model = //logic
    return View(model);
}
于 2013-02-15T14:42:10.377 回答