获取当前相对URL,包括未转义的查询字符串

时间:2013-06-04 13:07:58

标签: asp.net asp.net-mvc

如果我请求的网址如下:/Offers/Create?Provider=Nicholas Associates&ProviderID=2&PlacementModal=1

在此请求的视图中,是一个表单。我想要做的是确保我的表单操作值采用它所显示的视图的URL,包括传递的参数。

例如:

<form action="/Offers/Create?Provider=Nicholas Associates&ProviderID=2&PlacementModal=1">

我试过了:

@using (Html.BeginForm("Create" + Request.QueryString, "Manage", FormMethod.Post))

但它正在输出:

<form action="Offers/Create%3fProvider%3dNicholas%2520Associates%26ProviderID%3d2%26PlacementModal%3d1%26_%3d1370350965816">

如何阻止它转义网址?

1 个答案:

答案 0 :(得分:0)

如果您的观点与您的帖子操作相对应(表示该表单的观看操作为Manage/Create且您的帖子操作为Manage/Create,则可以

@using (Html.BeginForm())

将采用查询字符串。

现在,如果你想发布到另一个动作,你可以做

@{ var queryStringDictionary = new RouteValueDictionary(Request.QueryString.AllKeys.ToDictionary(key => key, key => (object) Request.QueryString[key])); }

@using (Html.BeginForm("Create", "Offers",queryStringDictionary, FormMethod.Post))