我的表单和控制器如下。基本上我正在尝试获取控制器中的表单值模式,cmd值始终设置但我的模式未设置,我不知道如何获取值,任何人都可以告诉我如何获取它? 或者如何使用与cmd字符串相同的方法获取它?
由于
using (Ajax.BeginForm("AddEditRecord", "Equipment", new AjaxOptions { HttpMethod = "POST",OnSuccess = "onSuccess()", LoadingElementId = "dvLoading" }))
{
@Html.ValidationSummary(true)
<div id="equipmentDialog">
@Html.Hidden("hidMode", Request.QueryString["mode"].ToString())
<fieldset>
<legend>Product</legend>
@if (ViewBag.IsUpdate == true)
{
@Html.HiddenFor(model => model.ID)
}
<div class="editor-label">
@Html.LabelFor(model => model.MachineName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.MachineName)
@Html.ValidationMessageFor(model => model.MachineName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.AssetNo)
</div>
<div class="editor-field">
@Html.TextAreaFor(model => model.AssetNo)
@Html.ValidationMessageFor(model => model.AssetNo)
</div>
<p>
@if (ViewBag.IsUpdate == true)
{
<input type="submit" value="Update" id="btnUpdate" name="cmd" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" />
}
else
{
<input type="submit" value="Add" id="btnSave" name="cmd" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" />
}
<input type="button" value="Cancel" id="btncancel" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" />
</p>
</fieldset>
</div>
}
我的附加控制器就是这个
public ActionResult AddEditRecord(tblEquipment Equipment, string cmd, string mode)
{
if (ModelState.IsValid)
{
switch (cmd)
{
case "Add":
try
{
db.tblEquipments.Add(Equipment);
db.SaveChanges();
return RedirectToAction(mode);
}
catch { }
break;
case "Update":
try
{
tblEquipment Item = db.tblEquipments.Where(m => m.ID == Equipment.ID).FirstOrDefault();
if (Item != null)
{
Item.AssetNo = Equipment.AssetNo;
Item.MachineName = Equipment.MachineName;
db.SaveChanges();
}
return RedirectToAction(mode);
}
catch { }
break;
}
}
if (Request.IsAjaxRequest())
{
return PartialView("_AddEdit", Equipment);
}
else
{
return View("AddEdit", Equipment);
}
}
答案 0 :(得分:1)
错误在这里:
@Html.Hidden("hidMode", Request.QueryString["mode"].ToString())
您将名称hidMode
提供给隐藏字段,并将其视为控制器中的cmd
。因此,要么重命名隐藏字段,要么在控制器操作中重命名输入参数