所以我有一条自定义路线:
routes.MapRoute(
"Wizard", // Route name
"Wizard/{page}", // URL with parameters
new { controller = "Wizard", action = "Index" } // Parameter defaults
);
并在我的观看中有以下内容:
<% Html.BeginForm("Continue", "Wizard"); %>
<input type="submit" value="Continue" name="Continue" />
<% Html.EndForm(); %>
我想在其中调用此函数:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Continue(string Number, string Rev)
{
(...)
}
但是当按下该按钮时,总是调用回发索引而不是我想要的回发索引。如果我删除自定义路由,它会调用我的函数,但我希望在地址栏中显示的是:localhost:xxxx / Wizard / 1,其中结尾的数字是向导的页面(显示div)1 ,2,3或4.那么我有什么遗漏或者不能做到吗?感谢。
答案 0 :(得分:0)
您应该更改路线,以便操作是参数:
routes.MapRoute(
"Wizard", // Route name
"Wizard/{action}", // URL with parameters
new { controller = "Wizard", action = "Index"} // Parameter defaults
);
关于你的其余问题,请详细说明一下吗?
答案 1 :(得分:0)
现在你的HTML中写了什么(表格标签)?
您希望页码来自哪里?我不知道你是怎么试图让它成为URL的一部分。 (因为它不是URL的一部分,它会导致路由不匹配。)您需要将其作为路径的一部分,例如:
<%= Html.BeginForm("Continue", "Wizard", new { page = intPage }) %>
另外,我并不认为FormMethod的默认值是POST。您可能需要在表单标记中仔细检查它。
詹姆斯