MVC4 Multibuttons в форме не работает JQM

Im Столкнувшись с необычной проблемой моего мобильного приложения JQuery в MVC4:

У меня есть форма с паролем texboxes, вроде этого

@using Models
@model Models.DataModel.Pagina_Details
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}


@using (Html.BeginForm("Pagina_Details", "Home", FormMethod.Post, new { id =          "PaginaDetailsForm" }))
{
if (Request.QueryString["Command"] != null)
{
    Session["Command"] = Request.QueryString["Command"];
}
else
{
    Response.Redirect("Index");
}
<div class="ui-corner-all custom-corners ui-shadow">
  <div class="ui-bar ui-bar-a">
    <h3>Pagina's</h3>
  </div>
<div class="ui-body ui-body-a">
 <input type="hidden" id="Command" />
  @Html.HiddenFor(model => model.ID)
 @Html.LabelFor(model => model.Name, "Naam *", new { @class = "lbl"})    
 @Html.TextBoxFor(model => model.Name, new { required = "required" })

 @Html.LabelFor(model => model.Description, "Omschrijving *", new { @class = "lbl"})    
 @Html.TextArea("Description", new { required = "required", rows="10", cols="80"})

 @Html.LabelFor(model => model.MetaDescription, "Meta description", new { @class =  "lbl" })    
 @Html.TextBoxFor(model => model.MetaDescription)

 @Html.LabelFor(model => model.MetaKeywords, "Meta keywords", new { @class = "lbl" })    
 @Html.TextBoxFor(model => model.MetaKeywords)

 @Html.LabelFor(model => model.Active, "Actief", new { @class = "lbl" })   
 @Html.CheckBoxFor(model => model.Active)

@if (Session["Command"] == "Insert" || Request.QueryString["Command"] == "Insert")
{
    <button type="submit" name="Command" data-role="button" data-icon="plus">Toevoegen</button>
}       
@if (Session["Command"] != "Insert" && Request.QueryString["Command"] != "Insert")
{
    <button type="submit" id="Edit" name="Command" value="Opslaan" data-role="button" data-icon="edit">Opslaan</button>
    <button type="submit" id="Verwijderen" name="Command" value="Verwijderen" data-role="button" data-icon="delete">Verwijderen</button>
}

</div>

</div>

}

в моем ActionResult (Controller) у меня есть команда param и использовать это, чтобы переключиться на что-то с этим, проблема на настольном браузере он работает хорошо, и я вижу, что команда переходит к ActionResult, и все работает отлично, как должно быть, но по какой-то причине, когда i попробуйте то же самое на моем мобильном телефоне с помощью Phonegap, значение команды всегда будет null

Что я пробовал: AttributeUsage Как вы обрабатываете несколько кнопок отправки в ASP.NET MVC Framework? никакого результата.

также я попробовал разные ActionResults для двух кнопок никакого результата.

im lost, кто-то знает некоторые подсказки или есть идеи, как я могу это исправить. для вашего времени и помощи.

+8
27 мая '14 в 20:42
источник поделиться
2 ответа

Возможно, это не то, что вы ищете, но почему бы не использовать кнопки в качестве функций javascript, которые могли бы изменить действие формы перед отправкой. Я думаю, что это хороший способ сохранить вашу логику чистой и простой. Так как ваш javascript с помощью javascript не должен быть проблемой. Удачи!

<script type="text/javascript">
document.getElementById("edit").onclick = function() {
 a=document.getElementsByTagName("form")[0];
a.action ="URL for Edit";
a.submit();
 }
document.getElementById("Verwijderen").onclick = function() {
 a=document.getElementsByTagName("form")[0];
a.action ="URL for Verwijderen";
a.submit();
 }

</script>

Надеюсь, что это поможет! -Drew

+1
30 мая '14 в 8:20
источник

Попробуйте следующее:

Если вы хотите использовать несколько кнопок отправки, тогда вам необходимо использовать параметр формы FormCollection Pass для действия post, подобного этому

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

@if (Session["Command"] != "Insert" && Request.QueryString["Command"] != "Insert")
{
    <button type="submit" id="Edit" name="CommandBtn1" value="Opslaan" data-role="button" data-icon="edit">Opslaan</button>
    <button type="submit" id="Verwijderen" name="CommandBtn2" value="Verwijderen" data-role="button" data-icon="delete">Verwijderen</button>
}

В настоящее время на домашнем контроллере сообщение о событии действия Pagina_Details написано как:

[HttpPost] 
public ActionResult Pagina_Details(FormCollection Form,ModelClassName ModelClassObject)
{
if(Form["CommandBtn1"]!=null)
{
/// Write code for Opslaan (Edit Code)
}
if(Form["CommandBtn2"]!=null)
{
/// Write code for Verwijderen (Delete Code)
}
return View();
} 

Надеюсь, его работы.

+1
31 мая '14 в 11:28
источник

Посмотрите другие вопросы по меткам или Задайте вопрос