Несколько кнопок отправки и проверки - PullRequest
0 голосов
/ 16 апреля 2011

Я использую MVC 3 Razor. У меня есть 2 кнопки отправки, и проблема, с которой я сталкиваюсь, заключается в том, что обе кнопки отправки вызывают проверку модели. Я хочу подключить отдельные кнопки отправки с определенными элементами управления вводом для проверки.

Ответы [ 3 ]

3 голосов
/ 16 апреля 2011

Добавьте этот класс в ваш проект:

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class ButtonClickAttribute : ActionNameSelectorAttribute
{
    public string Name { get; set; }

    public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)
    {
        return controllerContext.HttpContext.Request[Name] != null;
    }
}

В поле зрения:

<input type="submit" value="Connect to server" name="connect" />

В контроллере:

[HttpPost]
[ButtonClick(Name = "connect")]
public ActionResult Connect(ServerAddressModel model) {...
1 голос
/ 16 апреля 2011

Хорошо, я уже тестировал и, если у вас есть несколько полей, помеченных как required в вашей модели, но вы хотите опубликовать модель через несколько форм, каждая кнопка отправки будет запускать проверку.

Опцией для вас может быть запуск проверки JQuery вручную, поэтому вы можете сделать эти кнопки отправки обычными кнопками, например:

<input id="button1" type="button" value="Submit" />

, а затем прикрепите события нажатия к этим кнопкам и запустите проверку там:

$("#button1").click(function() {
    $("#form1").validate(); // assumes a form with id="form1"

    // post the form here
});

Вы бы сделали то же самое для другой кнопки / формы.

Кстати, я бы рекомендовал взглянуть на плагин jQuery Form . Среди прочего, он определяет событие beforeSubmit, которое вы можете использовать для запуска проверки.

ПРИМЕЧАНИЕ для всех: Это не мой первоначальный ответ, я изменил его полностью после того, как некоторые комментарии были в комментариях и некоторые испытания на моей стороне.

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

Вот ссылка на сообщение в блоге Стива Сандерсона, которое я использовал при игре с несколькими формами в одном представлении.

Частичная проверка в ASP.NET MVC 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...