【问题标题】:C# - Conditional calls in controller method from a html formC# - 来自 html 表单的控制器方法中的条件调用
【发布时间】:2018-01-09 10:36:40
【问题描述】:

这是我第一次处理 .net 项目,我有点困惑如何根据用户在 html 表单中执行的操作将 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); 以防点击分发按钮

【问题讨论】:

  • 我很久没有这样做了,但在这里我先看看:按钮标签可以有一个名称和一个值属性。实际上,看起来可以在这里回答:stackoverflow.com/questions/5438216/…

标签: c# asp.net .net


【解决方案1】:
【解决方案2】:

如果将动作参数改为

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

然后在你的cshtml中

<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>

您应该在控制器中获取提交按钮的值

【讨论】:

  • 我应该在我的控制器中简单地调用request.setCommandStatusCode(button);吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
相关资源
最近更新 更多