【问题标题】:MVC5 Form won't post; submit button does nothingMVC5 表单不会发布;提交按钮什么都不做
【发布时间】:2014-09-07 00:44:20
【问题描述】:

我们正在重新设计 ASP.NET MVC 5 Web 应用程序中的 UI。我们正在转向引导框架,并最终从 aspx 视图切换到 razor 视图。

我有这个表格 -

@using(Html.BeginForm("Dashboard", "Reports")) {
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 class="panel-title">Select date ranges & display currency</h4>
        </div>
        <div class="panel-body">
            <div class="row">
                <div class="col-md-3">
                    <label for="reportRequest_FromDate" class="control-label">Month:</label>
                    <div class="form-group">
                        @Html.TextBoxFor(t => t.reportRequest.FromDate, new { @class = "form-control"})
                    </div>
                </div>
                <div class="col-md-3">
                    <label for="reportRequest_CompareFromDate" class="control-label">Compare:</label>
                    <div class="form-group">
                        @Html.TextBoxFor(t => t.reportRequest.CompareFromDate, new { @class = "form-control"})
                    </div>
                </div>
                <div class="col-md-3">
                    <label>Currency:</label>
                    <div class="form-group">
                        @Html.DropDownListFor(t => t.reportRequest.Currency,Html.GetBaseCurrency(), new { @class = "form-control"})
                    </div>
                </div>
                <div class="col-md-3 pull-right">
                    <br />
                    <button type="submit" class="btn btn-primary btn-lg"><span class="fa fa-fw fa-bar-chart-o"></span> Display Report</button>
                </div>
            </div>
        </div>
    </div>
}   

在这里我选择了两个月(一个默认月份,另一个用于比较的月份)和一个货币。

单击提交按钮完全没有任何作用。我试过把它改成简单的 -

<input type="submit" value="Submit" />

看看这是否是我的问题,但行为是一样的。

这让我觉得很简单,但是在网络搜索之后我发现了空白。我可能没有使用正确的术语进行搜索。谁能看看我这里有没有遗漏的东西?

谢谢。

【问题讨论】:

  • 你确定在 ReportsController 中有一个方法 Dashboard 吗?
  • @StephenMuecke 是的。当然。发现问题。 CompareFromDate 是一个可选字段。如果我将此文本框留空,则新 UI 不允许我提交。我需要对这个问题进行一些挖掘,但它阻止了我在这种情况下提交。

标签: asp.net-mvc forms razor submit


【解决方案1】:

您可能想使用它发布数据,试试这个 BeginForm 方法的重载版本

@using(Html.BeginForm("Dashboard", "Reports",FormMethod.Post,null)) 

希望会有所帮助。

【讨论】:

  • 使用@Html.BeginForm (String, String)使用post方法。
  • 除非方法不存在或参数不匹配或控制器和动作名称错误!
  • 不,这不可能是原因,因为这种情况一定有例外。
  • 可能,除非在某个没有出现的地方进行异常处理。这个问题需要更多细节。
  • @AnupamSingh 感谢您的帮助 - 找到了问题。 CompareFromDate 是一个可选字段。如果我将此文本框留空,则新 UI 不允许我提交。我需要对这个问题进行一些挖掘,但它阻止了我在这种情况下提交。
猜你喜欢
  • 2020-04-22
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
  • 2020-10-16
  • 2016-07-24
  • 1970-01-01
  • 2014-03-23
相关资源
最近更新 更多