В настоящее время я разрабатываю Framework для создания динамических представлений в MVC, идея основана на этом tutorial.Несколько динамических кнопок Submit в MVC
Следующий шаг - добавление возможности создания нескольких кнопок отправки, но я не могу заставить его работать. Я провел некоторое исследование и нашел подход this. Однако, поскольку я хочу динамически генерировать эти кнопки, это пока не работает.
То, что я пытался это изменить этот атрибут код здесь:
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class MultipleButtonAttribute : ActionNameSelectorAttribute
{
public string Name { get; set; }
public string Argument { get; set; }
public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)
{
var isValidName = false;
var keyValue = string.Format("{0}:{1}", Name, Argument);
var value = controllerContext.Controller.ValueProvider.GetValue(keyValue);
if (value != null)
{
controllerContext.Controller.ControllerContext.RouteData.Values[Name] = Argument;
isValidName = true;
}
return isValidName;
}
}
При отладке я выкопал вниз ValueProvider и выяснили, что JQueryFormValueProvider в Сборнике Valueproviders фактически содержит имя нажатого submitbutton.
Кнопка генерируется следующим образом:
<input type="submit" name="buttonClick:@Model.Id" value="@Model.Text" />
К сожалению ValueProviders не позволяет мне Перебрать Ключи, так что я не знаю, как получить значение я обведенный красным на скриншоте выше , Он не должен быть таким, все, что имеет значение, чтобы узнать, какая кнопка была нажата.