Как я могу использовать Ajax-вызов в моем контроллере MVC3 и заставить его вызывать только один метод - PullRequest
0 голосов
/ 26 апреля 2011

У меня есть следующее на мой взгляд:

@using (Ajax.BeginForm("Refresh", "refresh",
    new AjaxOptions { 
        UpdateTargetId = "status",
        InsertionMode = InsertionMode.Replace,
        OnBegin = "hide",
        OnComplete = "show",
    }
    ))
{
    <input type="submit" name="refresh" value="transfer1"/><br />
    <input type="submit" name="refresh" value="transfer2"/><br />
    <input type="submit" name="refresh" value="transfer3"/><br />
}

Я бы хотел, чтобы у этого триггера был какой-то код в моем контроллере и все оставалось в ОДНОМ методе. В этом методе я хочу проверить переданное значение и сделать что-то в зависимости от того, какое значение.

Это важно, так как у меня на самом деле много строк кнопок ввода. Я не уверен, как это сделать в ОДНОМ методе. Любые предложения / советы будут высоко оценены.

1 Ответ

0 голосов
/ 26 апреля 2011

Чтобы получить значение кнопки в действии контроллера, вы можете сделать следующее:

public ActionResult Refresh(string refresh)
{
    if (refresh == "transfer1")
    {
        // Button 1 was clicked ...
    } 
    else if (refresh == "transfer2") 
    {
        // Button 2 was clicked ...
    }
    else if (refresh == "transfer3") 
    {
        // Button 3 was clicked ...
    }
    ...
}

Другая возможность состоит в том, чтобы фактически дать этим кнопкам разные имена, если вы не хотите полагаться напроверка значения кнопки:

<input type="submit" name="refresh1" value="transfer1"/><br />
<input type="submit" name="refresh2" value="transfer2"/><br />
<input type="submit" name="refresh3" value="transfer3"/><br />

, а затем:

public ActionResult Refresh()
{
    if (!string.IsNullOrEmpty(Request["refresh1"]))
    {
        // Button 1 was clicked ...
    } 
    else if (!string.IsNullOrEmpty(Request["refresh2"])) 
    {
        // Button 2 was clicked ...
    }
    else if (!string.IsNullOrEmpty(Request["refresh3"])) 
    {
        // Button 3 was clicked ...
    }
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...