我正在尝试将参数传递给控制器(或设置模型属性),检查它,执行操作,重置参数以及返回视图。 我试图在我的视图模型中创建一个属性,并在视图中设置它,我在发布它(GET)方法后得到正确的值,但重置似乎没有效果。 我的视图模型:
public class GridViewModel
{
...other properties...
public string exportBtn { get; set; }
}
我的控制器操作:
//GET
public ActionResult Index(GridViewModel model)
{
if (model.exportBtn == "true")
{
//do stuff
}
ModelState.Clear();
ModelState.Remove("exportBtn");
model.exportBtn = "";
return View(model);
}
在视图中我有:
$('#someButtonOnClick').on('click', function () {
$('input[name=exportBtn]').val("true");
}
@Html.HiddenFor(modelItem=> Model.exportBtn)
还有其他按钮可以为不同目的调用相同的控制器操作,我需要重置此值,以免将其与其他请求混淆。 还有其他更好的方法将临时值从View传递给Controller吗? 在查看其他帖子之后,我还尝试传递新的ViewModel
var newVM = new GridModel {exportBtn="" };
ModelState.Clear();
return View(mv);
return View(model); //either doesn't work