BeginForm рендеринг пустой метод действия - PullRequest
0 голосов
/ 31 мая 2011

Проблема в том, что всякий раз, когда я жестко кодирую Action и Controller в BeginForm, это приводит к пустому методу действия.

Я в замешательстве.

Вид ниже был вызван из HomeController и метод действия Index.

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { id = "first" }))
{}

Результат

<form id="first" method="post" action="/Home"></form>

Вызов ниже показан из HomeController и метода действия страницы.

@using (Html.BeginForm("Edit", "Home", FormMethod.Post, new { id = "first" }))
{}

Результат

<form id="first" method="post" action=""></form>

Маршрутизация

    routes.MapRoute(
        "RootUrlWithAction",
        "Home",
        new
            {
                controller = "Home", 
                action = "Index", 
                name = "home", 
                id = UrlParameter.Optional
            }
    );

    routes.MapRoute(
        "DynamicPages",
        "{name}/{id}",
        new
            {
                controller = "Home", 
                action = "Page", 
                id = UrlParameter.Optional
            }
    );

    routes.MapRoute(
        "EmptyUrl",
        "",
        new
            {
                controller = "Home", 
                action = "Index", 
                name = "home"
            }
    );

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

Действия контроллера

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Page(String name)
    {

        return View();
    }

    [HttpPost]
    public ActionResult Edit(Order orderVm)
    {
        var a = orderVm;
        string errorMessage = "hehehe";

        return Json(new Order { Message = errorMessage });
    }
}

1 Ответ

1 голос
/ 31 мая 2011

Вы должны попытаться отладить свои маршруты с помощью этого инструмента, который вы можете загрузить с NuGet.

http://haacked.com/archive/2011/04/13/routedebugger-2.aspx

PM> Install-Package RouteDebugger

Дайте мне знать, как это работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...