2017-08-02 54 views
0

这是我第一次处理.net项目,我有点困惑如何基于用户正在采取的操作将控件类连接到HTML表单在html表单中。C# - 从HTML表单控制器方法的条件调用

cshtml形式

<form method="post" enctype="multipart/form-data" asp-controller="Home" asp-action="DecodeFiles"> 
    <div> 
     <input type="file" name="files" id="inputFile"> 
     <button type="submit" class="btn btn-success btn-lg btn-block">Verify</button> // Set different piece of code in the controller method 
     <button type="submit" class="btn btn-primary btn-lg btn-block">Dispense</button> // Set different piece of code in the controller method 
    </div> 
    <div> 
     @ViewData["TextAreaResult"] 
    </div> 
</form> 

controller方法

[HttpPost("DecodeFiles")] 
public IActionResult DecodeFiles(ICollection <IFormFile> files) { 
    ViewData["TextAreaResult"] = "No result."; 

    try { 

     Control.Initialize(); 
     Control control = new Control(); 
     Request request = new Request(); 
     request.setRequestType(1); 

     request.setCommandStatusCode(0); // Set only in case verify button is clicked 
     request.setCommandStatusCode(1); // Set only in case dispense button is clicked 

     ViewData["TextAreaResult"] = string.Format(" Response {0}", request.getHttpInformation()); 

    } catch (Exception exc) { 
     ViewData["TextAreaResult"] = "Exception: " + exc.Message; 
    } 

    return View("Index"); 
} 

我应该如何有条件地

request.setCommandStatusCode(0);的情况下,确认按钮被点击request.setCommandStatusCode(1);的情况下免除按钮被点击

+1

很久以前我还没有做到这一点,但在这里我会先看看:按钮标签可以有一个名称和一个值属性。其实,它看起来像这样可能在这里回答:https://stackoverflow.com/questions/5438216/how-do-i-post-button-value-to-php – TTT

回答

2

如果您更改CSHTML动作参数

public IActionResult DecodeFiles(int? button, ICollection <IFormFile> files) 

然后

<button type="submit" name="Button" value="0" class="btn btn-success btn-lg btn-block">Verify</button> 
<button type="submit" name="Button" value="1" class="btn btn-primary btn-lg btn-block">Dispense</button> 

你应该得到控制器中提交按钮的值

+0

然后,我应该简单地调用'request.setCommandStatusCode(button );'在我的控制器? – zaq

+0

这听起来像它应该工作 –

+0

谢谢。正确的参数是'button.value' – zaq