MVC, какая кнопка отправки была нажата

Этот ответ был включен в Сообщество ответ Wiki

  • , абстрактные классы просто имеют ПУСТОЙ УКАЗАТЕЛЬ для указателя функции по крайней мере одной записи?

ответ для этого - то, что это является неуказанным - вызов чистых результатов виртуальной функции в неопределенном поведении, если это не определяется (который это обычно не) (ISO/IEC 14882:2003 10.4-2). Некоторые реализации действительно просто помещают Нулевого указателя в vtable запись; другие реализации помещают указатель на фиктивный метод, который делает что-то подобное утверждению.

Примечание, что абстрактный класс может определить реализацию для чистой виртуальной функции, но что функция может только быть вызвана с синтаксисом квалифицированного идентификатора (т.е., полностью определив класс в имени метода, подобном вызову метода базового класса от производного класса). Это сделано для обеспечения простой в использовании реализации по умолчанию, все еще требуя, чтобы производный класс обеспечил переопределение.

123
задан Brendan Vogt 4 May 2016 в 09:33
поделиться

3 ответа

Назовите обе кнопки отправки одинаковыми

<input name="submit" type="submit" id="submit" value="Save" />
<input name="submit" type="submit" id="process" value="Process" />

Затем в вашем контроллере получите значение submit. Только нажатая кнопка передаст свое значение.

public ActionResult Index(string submit)
{
    Response.Write(submit);
    return View();
}

Вы, конечно, можете оценить это значение для выполнения различных операций с блоком переключения.

public ActionResult Index(string submit)
{
    switch (submit)
    {
        case "Save":
            // Do something
            break;
        case "Process":
            // Do something
            break;
        default:
            throw new Exception();
            break;
    }

    return View();
}
165
ответ дан 24 November 2019 в 01:13
поделиться
<input name="submit" type="submit" id="submit" value="Save" />
<input name="process" type="submit" id="process" value="Process" />

И в действии вашего контроллера:

public ActionResult SomeAction(string submit)
{
    if (!string.IsNullOrEmpty(submit))
    {
        // Save was pressed
    }
    else
    {
        // Process was pressed
    }
}
46
ответ дан 24 November 2019 в 01:13
поделиться

Вы не можете узнать с помощью Request.Form Collection? Если щелкнуть процесс, request.form ["процесс"] не будет пустым

0
ответ дан 24 November 2019 в 01:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: