2015-02-24 189 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

相关问题