好的,如果问题的方块不清楚,我很抱歉,如果你明白我的意思,请不要犹豫,帮我想一个更好的。
无论如何,我的表单有一个<input type="submit">
元素,我希望它返回与元素所在页面的URL相同的URL。
目前,如果我点击该按钮,则会将我从/Calculate/Quadratic
转到/Calculate/QuadraticForm
在我的控制器中,我有以下代码:
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult Quadratic()
{
ViewData["Root1"] = "";
ViewData["Root2"] = "";
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ViewResult Quadratic(QuadCalc boss)
{
ViewData["Root1"] = x1;
ViewData["Root2"] = x2;
return View();
}
这是我的Quadratic视图页面的标记和代码,其中包含我提到的包含提交按钮的表单:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Quadratic</h2>
<% using(Html.BeginForm("QuadraticForm", "Calculate")) %>
<% { %>
<div>
a: <%= Html.TextBox("quadraticAValue") %>
<br />
b: <%= Html.TextBox("quadraticBValue") %>
<br />
c: <%= Html.TextBox("quadraticCValue") %>
<br />
<input type="submit" id="quadraticSubmitButton" value="Calculate!" />
<br />
<p><%= ViewData["Root1"] %></p>
<p><%= ViewData["Root2"] %></p>
</div>
<% } %>
</asp:Content>
因此,我真正想要的是让提交按钮返回相同的页面,但HTTP帖子将帮助应用程序传递新的ViewData。除非我解释这一切都错了。
答案 0 :(得分:4)
问题出在您的BeginForm方法中,该方法调用QuadraticForm操作
<% using(Html.BeginForm("QuadraticForm", "Calculate")) %>
如果您想为表单提供ID,请使用
<% using (Html.BeginForm("Quadratic", "Calculate", FormMethod.Post, new { id = "QuadraticForm" })) { %>
如果您不介意ID并且想要返回相同的操作,请使用
<% using(Html.BeginForm() %>
参数是: