形式提交刷新页面而不是重定向



我在我的 ReceivingController Index.cshtml视图中具有以下形式:

@using (Html.BeginForm("Details", "Grv"))
{
    @Html.TextBox("grvNumber")
    <input type="submit" value="search" />
}

据我了解,这应该重定向到我的GrvControllerDetails.cshtml,以grvNumber作为输入。

但是,当我提交表格时,我只需返回同一页面(Receiving/Index(。

我怀疑这可能与我的路由有关,但我无法弄清楚发生了什么。

RouteConfig

routes.MapRoute(
    name: "Default",
    url: "",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
    name: "Receiving",
    url: "receiving",
    defaults: new { controller = "Receiving", action = "Index" }
    );
routes.MapRoute(
    name: "ViewGrv",
    url: "receiving/{grvNumber}",
    defaults: new { controller = "Grv", action = "Details" }
    );
routes.MapRoute(
    name: "ViewPallet",
    url: "receiving/{grvNumber}/{palletSequence}",
    defaults: new { controller = "Pallet", action = "Details" }
    );

grvController

public class GrvController : Controller
{
    public ActionResult Details(string grvNumber)
    {
        var access = new Access();
        var grvData = access.GetGrvData(grvNumber);
        var grv = new Grv(grvData);
        Session["grv"] = grv;
        return View(grv);
    }
}

我尝试将[HttpPost]添加到GrvController Details方法,并将FormMethod.post参数添加到BeginForm,但行为完全相同。

如果我手动导航到URL ../receiving/8,则我会看到正确的Grv Details页面,但是在提交Receiving表单后,我需要看到此页面。

我可以从设定提交表格的断开点可以看出,从未到达GrvController

任何建议都非常感谢,让我知道我是否可以发布更多详细信息。

只需更改您的RouteConfig文件

 routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

最新更新