簡體   English   中英

輸入提交拋出404以在MVC中找不到控件

[英]input submit throws 404 for control not found in MVC

我已經將MVC應用程序發布到服務器路徑“ / iapps / ebiz”。 該應用程序可在localhost上完美運行。 @ Ajax.Action鏈接按“獲取”操作的預期運行,但''找不到控制器的Post方法,並拋出錯誤代碼404。

在此處輸入圖片說明

  @Ajax.ActionLink(
                     "Add Email",
                    "GetEditEmail","Customer",
                              new { CommunicationLocation = "add" },
                     new AjaxOptions()
                            {
                                HttpMethod = "Get",
                                UpdateTargetId = "DivEmailContainer",
                                InsertionMode = InsertionMode.Replace
                            },
                      new { @class = "btn btn-success" })      </td>



 @using (Html.BeginForm("PostEditEmail","Customer", FormMethod.Post, new { name = "frmEmail", id = "frmEmail" }))
    {

    <input type="submit" value="Save" class="btn btn-success" /> 
      <!-- This one is going "/iapps/Customer" but suppose to be "/iapps/eBiz/Customer"

    }

控制者

 [HttpGet]
 public PartialViewResult GetEditEmail(string CommunicationLocation)
 {
 }
 [HttpPost]
 [Route("PostEditEmail")]
 public PartialViewResult PostEditEmail(string Actiontype,  FormCollection col)
 {
 }

路線圖

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

HTML節目

<form action="/iapps/ebiz/Customer/PostEditEmail?Length=8" data-ajax="true" data-ajax-method="Post" data-ajax-mode="replace" data-ajax-update="#DivEmailContainer" id="frmEmail" method="post" name="frmEmail" novalidate="novalidate" _lpchecked="1">

更新時間:04/08/2015 3:30 PM

如果在瀏覽器中的eBiz之后添加/eBiz/ (反斜杠),則添加時問題已解決。 如果/eBiz和post不起作用。 如何解決這個問題?

基本URL問題的末尾加斜杠。

您已將Route屬性指定為[Route(“ PostEditEmail”)],因此它將指向URL

/ iapps / ebiz / PostEditEmail

這樣只有您收到404錯誤。 嘗試這個

[Route("Customer/PostEditEmail")]

您在Html.BeginForm中缺少area參數。請Html.BeginForm以下操作。

@using (Html.BeginForm("PostEditEmail","Customer", new { area = "eBiz" }, FormMethod.Post, new { name = "frmEmail", id = "frmEmail" }))
    {    
        <input type="submit" value="Save" class="btn btn-success" />
    }

即使您的控制器不在Area文件夾下,您也應該在Html.BeginForm方法中添加new { area = "" }

暫無
暫無

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

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