我有一个带有几个像这样的texbox的表单
@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,一切正常,因为它应该是但由于某种原因,当我 使用Phonegap在我的手机上尝试相同的操作,Command值将始终为null
我尝试了什么: AttributeUsage How do you handle multiple submit buttons in ASP.NET MVC Framework? 根本没有结果。
我也为2个按钮尝试了不同的ActionResults 根本没有结果。
我失去了有人知道一些提示或有任何想法如何我可以解决这个问题。 你的时间和帮助。答案 0 :(得分:1)
这可能不是您要查找的内容,但为什么不将这些按钮用作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>
希望这有助于! -DREW
答案 1 :(得分:1)
试试这个:
如果你想使用多个提交按钮,那么你必须使用传递FormCollection Form参数来发布这样的帖子
如果您想使用多个提交按钮,请先更改您的输入按钮名称,然后将提交按钮代码更改为:
@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>
}
现在On Home控制器事件的动作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();
}
希望它的作品。