2015-02-24 148 views
0

我的URL localhost:555/Configuration/Addresses上找不到服務器操作由於錯誤的URL

我有3個按鈕編輯/創建/刪除表格。

當我按下其中一個按鈕時,根據按鈕的值屬性動態設置表單動作。我稍後使用本地化的按鈕。

當我點擊一個按鈕,檢查瀏覽器的源代碼,我得到這個網址:

「配置/地址/編輯」,並提交表單。

爲什麼我那麼在url中看到這一點: 'Configuration/Configuration/Addresses/Edit'

因此對服務器的編輯操作沒有發現:/

<div class="row"> 
    <div class="col-xs-12"> 

     @using (Html.BeginForm()) 
     { 
      <div class="form-group required"> 
       @Html.LabelFor(m => m.Title, HtmlAttributes.Label) 
       <div class="col-md-6"> 
        @(Html.Kendo().DropDownListFor(m => m.Title) 
          .BindTo(Model.Addresses.OrderBy(order => order.Text)) 
          .HtmlAttributes(HtmlAttributes.KendoControl)) 
       </div> 
      </div> 

      <button type="submit" class="btn btn-default addresses-btn" name="action" value="Delete">Delete</button> 
      <button type="submit" class="btn btn-default addresses-btn" name="action" value="Edit">Edit</button> 
      <button type="submit" class="btn btn-default addresses-btn" name="action" value="Add">Create</button> 
     } 
    </div> 
</div> 

<script> 
    $(function() { 
     $(".btn-default").on("click", function (e) { 
      e.preventDefault(); 
      var form = $(this).closest("form"); 
      var action = $(this).val(); 
      $(form).attr('action', '@MVC.Configuration.Name' + '/' + '@MVC.Configuration.Addresses.Name' + "/" + action); 
      $(form).submit(); 
     }); 
    }); 

</script> 
+1

因爲你需要一個正斜槓'$(形式).attr( '動作', '/' +「@ MVC.Configuration.Name'....' – 2015-02-24 08:45:09

+0

有相對和絕對url's.在你的情況下,網址是相對的,你不需要'@ MVC.Configuration.Name'+'/'+部分(你已經在地址控制器中)如果你在開始時添加'〜',你會得到一個絕對的url – okisinch 2015-02-24 08:51:41

+1

@ Url.Content(「〜」)+「\」+ action does not work then I get add or edit in the url – Pascal 2015-02-24 09:07:49

回答

2

您需要perpend正斜槓來生成的URL

$(form).attr('action', '/' + '@MVC.Configuration.Name' + '/' + '@MVC.Configuration.Addresses.Name' + "/" + action); 
+0

再次感謝您的持久幫助! – Pascal 2015-02-24 10:28:13

1

這是因爲提供的路徑被追加到當前URL 。

您需要重新定義它。嘗試:

$(form).attr('action', "@Url.Content("~")@MVC.Configuration.Name/@MVC.Configuration.Addresses.Name/" + action); 

讓我知道這是否工作。

阿爾貝託

+0

這會給你'〜配置/地址/編輯'這再次錯誤 – 2015-02-24 08:54:29

+0

@JitendraPancholi這是不正確的。它給出了「/配置/地址/編輯」,這是正確的。請檢查Url.Content(「〜」)的行爲.... – Alberto 2015-02-24 08:56:56

+0

是的,請編輯您的ansser,以便我可以upvote它。 – 2015-02-24 09:03:52

相關問題