2012-06-13 27 views
2

如何在mvc3控制器中启用和禁用@html.textbox如何在mvc3控制器中为@ html.textbox启用和禁用

我的文本框代码:

@Html.TextBox("txtIden1") 

点击按钮后,我怎么可以禁用或启用控制器文本框。

我写的按钮单击事件代码控制,如下面

@using(Html.BeginForm()) 
{ 
@Html.TextBox("txtCustomerFilter"); 
} 

<button name="button" value="Submit">Save</button>&nbsp; 
<button name="button" value="cancel">Cancel</button> 

控制器:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Customer(string button, 
     customer customerInsert, FormCollection formvalues) 
{ 
    if(button == "Submit") 
    { 
    //Code 
    } 
    else 
    { 
    //Code 
    } 

    return View(); 
} 

回答

3

我会建议你使用浏览模式:

public class CustomerViewModel 
{ 
    public string Button { get; set; } 
    public string Filter { get; set; } 
    public bool Disabled { get; set; } 

    ... some other properties that will represent the customer 
     details 
} 

,然后:

public ActionResult Customer() 
{ 
    var model = new CustomerViewModel(); 
    return View(model); 
} 


[HttpPost] 
public ActionResult Customer(CustomerViewModel model) 
{ 
    if(model.Button == "Submit") 
    { 
     model.Disabled = true; 
     //Code 
    } 
    else 
    { 
     //Code 
    } 

    return View(model); 
} 

,然后有一个强类型的视图:

@model CustomerViewModel 
@using (Html.BeginForm()) 
{ 
    @Html.TextBoxFor(
     x => x.Filter, 
     Model.Disabled ? new { @readonly = readonly } : null 
    ) 

    <button name="button" value="Submit">Save</button> 
    <button name="button" value="cancel">Cancel</button> 
} 
+0

是否可以有一个属性总是和其他可选?如: '@ Html.TextBoxFor(x => x.AddFirstLine,Model.AutomaticAddress? new {'@class =“form-control”,'@disabled =“disabled”}:new {@class =“ form-control“}) – Juan