用户在mvc上单击它时禁用提交按钮

时间:2013-02-08 13:17:33

标签: asp.net-mvc model-view-controller

我想在用户点击它时禁用按钮。我能做到,但我认为我的方式并不好。 我的方式:

我将ViewBag.IsSaveButtonDisabled设置为true并通过javascript检查此容器div然后我禁用了保存按钮。我知道,这是一个糟糕的解决方案。我想在服务器端控制提交按钮的禁用属性。

最佳做法是什么?

2 个答案:

答案 0 :(得分:5)

向yourViewModel添加新属性

模型

viewModel{
    ...
    public string IsDisabled{ get; set; }
}

控制器

public ActionResult Index()
{
    viewModel model = new viewModel { ... , IsDisabled = "disabled"};
    return View(model);
}

在你的视图中

@model viewModel
<input type="submit" value="Kaydet" @Model.IsDisabled/> 

答案 1 :(得分:4)

在控制器中将ViewData["IsEnabled"]设置为false / true并返回查看。

public ActionResult ButtonEvent()
{
    ViewData["IsEnabled"]=false;
    // ... do something
    ViewData["IsEnabled"]=true;
    return View();
}

jQuery中,使用此ViewData["IsEnabled"]停用按钮:

$(function(){
    if(!@ViewData["IsEnabled"]){
        $('#btnSubmit').attr('disabled','disabled');
    } else {
        $(this).removeAttr("disabled");
    }
});