MVC4多按钮的形式不工作JQM
本文关键字:工作 JQM 按钮 MVC4 | 更新日期: 2023-09-27 18:05:39
我在MVC4中遇到了一个奇怪的问题:
我有一个有几个文本框的表单,像这样
@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)我有参数命令在开关中使用它来做一些事情问题是在桌面浏览器上,它工作得很好,我可以看到命令传递给ActionResult,一切都工作得很好,因为它应该是,但出于某种原因,当我在我的手机上使用Phonegap尝试同样的事情,命令值将始终为null
我所尝试的:AttributeUsage如何在ASP中处理多个提交按钮?。NET MVC框架?没有结果
我也尝试了2个按钮不同的ActionResults没有结果
我迷路了,有人知道一些技巧或有任何想法,我可以如何解决这个问题。谢谢你的时间和帮助。
这可能不是你想要的,但为什么不使用按钮作为javascript函数,可以在提交之前改变表单的动作。我认为这是一个保持逻辑清晰的好方法,也是一个简单的修复方法。因为你使用phonegap 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>
希望这有帮助!了
试试这个:
如果你想使用多个提交按钮,那么你必须使用传递FormCollection表单参数到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>
}
现在在Home控制器post事件的动作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();
}
希望它能起作用