调用控制器后,ASP.NET MVC重置模型属性

时间:2015-03-19 23:31:43

标签: asp.net asp.net-mvc modelstate

我正在尝试将参数传递给控制器​​(或设置模型属性),检查它,执行操作,重置参数以及返回视图。 我试图在我的视图模型中创建一个属性,并在视图中设置它,我在发布它(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

0 个答案:

没有答案