2015-06-16 32 views
0

我的屏幕上有两个按钮,我正在使用一种方法处理: Request.Form [“Approve”]变为空,因为我禁用了按钮,我如何获取禁用该按钮后Request.Form [“批准”]的值。Request.Form在使按钮成为禁用状态时为空

@if(ViewBag.RequestAlreadyProcessed) 
{ 
    <input type="submit" class="btn btn-primary btn_box" value="Approve" name="Approve" disabled="disabled" /> 
    <input type="submit" class="btn btn_secondary btn_box" value="Reject" name="Reject" disabled="disabled"/> 
} 
else 
{ 
    <input type="submit" class="btn btn-primary btn_box" value="Approve" name="Approve" /> 
    <input type="submit" class="btn btn_secondary btn_box" value="Reject" name="Reject" /> 
} 

Controller: 
public async Task<ActionResult> Approve(UserApprovalModel UserApprovalModel) 
{ 
    if (ModelState.IsValid) 
    { 
     if (Request.Form["Approve"] != null) 
     { 
      userReg.StatusCd = "APP"; 
     } 
     else 
     { 
      userReg.StatusCd = "REJ"; 
     } 
    } 
    if(userReg.StatusCd == "APP") 
    { 
     userReg.StatusComment = "Approved"; 
    } 
    else if(userReg.StatusCd == "REJ") 
    { 
     userReg.StatusComment = "Rejected"; 
    } 
} 
+1

可悲的是你的方法是根本错误的。您应该有两个不同的控制器端点用于批准和拒绝。然后将这些按钮绑定到可处理表单提交的某些客户端单击事件。你的控制器代码太多了。 – qamar

+0

2个禁用按钮有什么意义?你可能只是不包括他们。正如@qamar所示,你应该有2种不同的方法 –

回答

0

浏览器不提交禁用控件,因为它们是只读的。
有解决您的问题的方法,您将字段readonly="readonly"而不是disabled="disabled"?只读字段值将被提交给服务器,但仍然是用户不可编辑的。 SELECT标签虽然是个例外。

另外,作为一个侧面说明,

残疾人控件不接收焦点。
禁用的控件在标签导航中跳过 。
已禁用控件无法成功发布 。

+0

它是一个按钮控制.... – user662285

+0

为什么你需要在控制器中禁用按钮?它的工作可以很容易地隐藏起来。 –

+0

你可以使用隐藏来存储你的值,并根据隐藏在控制器操作中进行检查。 –

相关问题