【问题标题】:Why I can not call method from another one in the same controller?为什么我不能从同一个控制器中的另一个调用方法?
【发布时间】:2016-05-25 13:41:14
【问题描述】:

我尝试在另一个方法中调用返回 View 的方法,但在同一个控制器中。有我的代码:

public ActionResult GetAnswer(List<PossibleAnswerVM> possibleAnswers)
{
    if (IsLastQuestion(possibleAnswers.FirstOrDefault().IdQuestion))
    {
        return Index();
    }
    return null;
}
[HttpGet]
public ActionResult Index()
{
    IEnumerable<Anketa> anketas = Manager.SelectAnketa();
    return View(anketas);
}

还有叫GetAnswer()的表格

@using (Ajax.BeginForm("GetAnswer", "Survey", FormMethod.Post,
    new AjaxOptions { InsertionMode = InsertionMode.Replace }))
{
    <input type="submit" value="Ответить" 
        onclick="answerClick(@Model.FirstOrDefault().OrdQuestion);" 
        class="btn btn-default" />
}

我也尝试过RedirectToAction() 并从另一个控制器调用方法。
我将不胜感激。

【问题讨论】:

  • public static bool...
  • 当你说你不能调用那个方法时,你到底是什么意思?您是否收到编译错误或运行时异常?如果是这样,请发布您收到的消息。
  • 其实问题是什么都没有发生。进程在return Index(); 语句处进入断点,然后进入Index() 方法内部,但未出现适当的View
  • @VitalyIsaenko 你能在你的 Index() 方法中发布代码
  • @David 已经发布了。通过添加方法的代码编辑帖子。

标签: c# asp.net-mvc controller


【解决方案1】:

试试这个。

public ActionResult GetAnswer(List<PossibleAnswerVM> possibleAnswers)
{
    if (IsLastQuestion(possibleAnswers.FirstOrDefault().IdQuestion))
    {
          IEnumerable<Anketa> anketas = Manager.SelectAnketa();
          return View("VIEWNAME", anketas);
    }
    return null;
}

private static bool IsLastQuestion(int idQuestion)
{
    var returnValue = false;

    Question question = Manager.GetQuestion(idQuestion);
    List<Question> questions = Manager.SelectQuestions(question.idAnketa);

    if (questions.Count == Manager.GetCountQuestionsAnswered(question.idAnketa, SessionUser.PersonID))
    {
        returnValue = true;
    }                      
    return returnValue;
}

【讨论】:

  • 我尝试返回 View() 而不是 Action(),但也没有用。另外,我需要为强类型视图初始化对象。
  • @VitalyIsaenko 你能在你的 Index() 方法中发布代码吗,我在上面进行了更改以返回 index() - 很高兴看到里面有什么。
  • 是的,这种方法有帮助,谢谢。但是为什么我不能返回方法而不是视图呢?
猜你喜欢
  • 2023-01-13
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
相关资源
最近更新 更多