簡體   English   中英

未調用ASP.NET MVC4控制器操作

[英]ASP.NET mvc4 controller action not invoked

我在HomeController中定義了以下方法:

[HttpPost]
public ActionResult Validate(AccountRegisterModel accountRegisterModel)
{
   // do something
}

[HttpPost]
public ActionResult Create(AccountRegisterModel accountRegisterModel)
{
   // do something else
}

我在視圖中定義了這些HTML行。

<input name="submit" type="submit" value="Create" class="btn btn-info" onclick="location.href='@Url.Action("Validate", "Home")'"/>
<input name="validate" type="submit" value="Create" class="btn btn-info" onclick="location.href='@Url.Action("Validate", "Home")'"/>

當我運行應用程序並單擊兩個按鈕時,總是會調用控制器上的Create操作。 這是怎么回事?

我正在使用定義如下的默認路由:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

兩個輸入都具有type=submit ,因此在onclick事件之后,都將調用父表單。

嘗試使用stopPropagation()捕獲每個inputonclick事件,或者僅return false;

<input name="submit" type="submit" value="Create" class="btn btn-info" 
    onclick="location.href='@Url.Action("Validate", "Home")'; return false;"/>
<input name="validate" type="submit" value="Create" class="btn btn-info" 
    onclick="location.href='@Url.Action("Validate", "Home")'; return false;"/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM