Javascript ASP.NETMVC表单提交不会再次触发控制器操作方法。
我有一个局部视图,它有一个带有多个下拉列表和一个提交按钮的表单。submit操作调用用HttpPost修饰的控制器操作方法。当我运行应用程序时,页面加载良好,提交第一次就可以完美地工作。如果我导航出页面并返回到页面,然后尝试提交,它根本不会点击操作方法,而是使用前面的值加载页面Javascript ASP.NETMVC表单提交不会再次触发控制器操作方法。,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,我有一个局部视图,它有一个带有多个下拉列表和一个提交按钮的表单。submit操作调用用HttpPost修饰的控制器操作方法。当我运行应用程序时,页面加载良好,提交第一次就可以完美地工作。如果我导航出页面并返回到页面,然后尝试提交,它根本不会点击操作方法,而是使用前面的值加载页面 <h4>Filters</h4> <b>Season </b> <br /> @
<h4>Filters</h4>
<b>Season </b>
<br />
@Html.DropDownList("SeasonTables", ViewBag.Seasons as SelectList, "...Select Season...", new { @class = "form-control", id = "cmbSeason", style = "width:250px;" })
<br />
<br />
<b>Product Group </b>
<br />
@Html.DropDownList("ProductGrpTable", ViewBag.ProductGrp as SelectList, "...Select Product Grp...", new { @class = "form-control", id = "cmbProductGrp", style = "width:250px;" })
<br />
<br />
<b>Delivery Group </b>
<br />
@Html.DropDownList("DeliveryGrpTable", ViewBag.ProductDelGrp as SelectList, "...Select Delivery Grp...", new { @class = "form-control", id = "cmbDeliveryGrp", style = "width:250px;" })
<br />
<br />
<b>Division </b>
<br />
@Html.DropDownList("DivisionTable", ViewBag.DivisionList as SelectList, "...Select Division...", new { @class = "form-control", id = "cmbDivision", style = "width:250px;" })
<br />
<br />
<br />
<br />
<br />
<p>
<input type="submit" value="submit" />
</p>
</div>
</form>
</div>
我的看法
<h4>Filters</h4>
<b>Season </b>
<br />
@Html.DropDownList("SeasonTables", ViewBag.Seasons as SelectList, "...Select Season...", new { @class = "form-control", id = "cmbSeason", style = "width:250px;" })
<br />
<br />
<b>Product Group </b>
<br />
@Html.DropDownList("ProductGrpTable", ViewBag.ProductGrp as SelectList, "...Select Product Grp...", new { @class = "form-control", id = "cmbProductGrp", style = "width:250px;" })
<br />
<br />
<b>Delivery Group </b>
<br />
@Html.DropDownList("DeliveryGrpTable", ViewBag.ProductDelGrp as SelectList, "...Select Delivery Grp...", new { @class = "form-control", id = "cmbDeliveryGrp", style = "width:250px;" })
<br />
<br />
<b>Division </b>
<br />
@Html.DropDownList("DivisionTable", ViewBag.DivisionList as SelectList, "...Select Division...", new { @class = "form-control", id = "cmbDivision", style = "width:250px;" })
<br />
<br />
<br />
<br />
<br />
<p>
<input type="submit" value="submit" />
</p>
</div>
</form>
</div>
我不知道我做错了什么 我承认这是一个无中生有的尝试,但请尝试在上面添加[NoCache]装饰器
<h4>Filters</h4>
<b>Season </b>
<br />
@Html.DropDownList("SeasonTables", ViewBag.Seasons as SelectList, "...Select Season...", new { @class = "form-control", id = "cmbSeason", style = "width:250px;" })
<br />
<br />
<b>Product Group </b>
<br />
@Html.DropDownList("ProductGrpTable", ViewBag.ProductGrp as SelectList, "...Select Product Grp...", new { @class = "form-control", id = "cmbProductGrp", style = "width:250px;" })
<br />
<br />
<b>Delivery Group </b>
<br />
@Html.DropDownList("DeliveryGrpTable", ViewBag.ProductDelGrp as SelectList, "...Select Delivery Grp...", new { @class = "form-control", id = "cmbDeliveryGrp", style = "width:250px;" })
<br />
<br />
<b>Division </b>
<br />
@Html.DropDownList("DivisionTable", ViewBag.DivisionList as SelectList, "...Select Division...", new { @class = "form-control", id = "cmbDivision", style = "width:250px;" })
<br />
<br />
<br />
<br />
<br />
<p>
<input type="submit" value="submit" />
</p>
</div>
</form>
</div>
[HttpPost]在控制器中 我可以通过重新编写表单定义来解决这个问题,如下所示:
<h4>Filters</h4>
<b>Season </b>
<br />
@Html.DropDownList("SeasonTables", ViewBag.Seasons as SelectList, "...Select Season...", new { @class = "form-control", id = "cmbSeason", style = "width:250px;" })
<br />
<br />
<b>Product Group </b>
<br />
@Html.DropDownList("ProductGrpTable", ViewBag.ProductGrp as SelectList, "...Select Product Grp...", new { @class = "form-control", id = "cmbProductGrp", style = "width:250px;" })
<br />
<br />
<b>Delivery Group </b>
<br />
@Html.DropDownList("DeliveryGrpTable", ViewBag.ProductDelGrp as SelectList, "...Select Delivery Grp...", new { @class = "form-control", id = "cmbDeliveryGrp", style = "width:250px;" })
<br />
<br />
<b>Division </b>
<br />
@Html.DropDownList("DivisionTable", ViewBag.DivisionList as SelectList, "...Select Division...", new { @class = "form-control", id = "cmbDivision", style = "width:250px;" })
<br />
<br />
<br />
<br />
<br />
<p>
<input type="submit" value="submit" />
</p>
</div>
</form>
</div>
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @class = "FilterForm" }))
{
<h4>Filters</h4>
<b>Season </b>
<br />
@Html.DropDownList("SeasonTables", ViewBag.Seasons as SelectList, "...Select Season...", new { @class = "form-control", id = "cmbSeason", style = "width:250px;" })
<br />
<br />
<b>Product Group </b>
<br />
@Html.DropDownList("ProductGrpTable", ViewBag.ProductGrp as SelectList, "...Select Product Grp...", new { @class = "form-control", id = "cmbProductGrp", style = "width:250px;" })
<br />
<br />
<b>Delivery Group </b>
<br />
@Html.DropDownList("DeliveryGrpTable", ViewBag.ProductDelGrp as SelectList, "...Select Delivery Grp...", new { @class = "form-control", id = "cmbDeliveryGrp", style = "width:250px;" })
<br />
<br />
<b>Division </b>
<br />
@Html.DropDownList("DivisionTable", ViewBag.DivisionList as SelectList, "...Select Division...", new { @class = "form-control", id = "cmbDivision", style = "width:250px;" })
<br />
<br />
<br />
<br />
<br />
<p>
<input type="submit" value="submit" />
</p>
</div>
</form>
</div>
}你好-谢谢!但是我一点也没看到一个NoCache装饰师!是OutputCache装饰器吗?我看到你找到了[NoCache],很抱歉它不适合你。无可否认,这只是一件值得尝试的事情。无论如何,谢谢。我仍在努力解决这个问题:
<h4>Filters</h4>
<b>Season </b>
<br />
@Html.DropDownList("SeasonTables", ViewBag.Seasons as SelectList, "...Select Season...", new { @class = "form-control", id = "cmbSeason", style = "width:250px;" })
<br />
<br />
<b>Product Group </b>
<br />
@Html.DropDownList("ProductGrpTable", ViewBag.ProductGrp as SelectList, "...Select Product Grp...", new { @class = "form-control", id = "cmbProductGrp", style = "width:250px;" })
<br />
<br />
<b>Delivery Group </b>
<br />
@Html.DropDownList("DeliveryGrpTable", ViewBag.ProductDelGrp as SelectList, "...Select Delivery Grp...", new { @class = "form-control", id = "cmbDeliveryGrp", style = "width:250px;" })
<br />
<br />
<b>Division </b>
<br />
@Html.DropDownList("DivisionTable", ViewBag.DivisionList as SelectList, "...Select Division...", new { @class = "form-control", id = "cmbDivision", style = "width:250px;" })
<br />
<br />
<br />
<br />
<br />
<p>
<input type="submit" value="submit" />
</p>
</div>
</form>
</div>