Getting wrong Url.PathAndQuery
Getting wrong Url.PathAndQuery
我有一个动作链接:
@Html.ActionLink("Shopping cart", "Index", "Cart", new { returnUrl = Request.Url.PathAndQuery }, null)
和将商品添加到购物车的代码:
<script type="text/javascript">
$(document).ready(function () {
$("#addToCart_@(Model.ProductID)").click(function () {
var quantity = $("#Quantity_@(Model.ProductID)").val();
var productId = "@Model.ProductID";
var dataToBeSent = { 'quantity': quantity, 'productId': productId};
$.ajax({
type: "POST",
url: '/Cart/AddToCart/',
data: dataToBeSent,
success: function (result) {
$('#cartholder').html(result);
}
});
});
});
</script>
当我试图在将物品添加到购物车后遵循动作链接时,Request.Url.PathAndQuery
具有值/Cart/AddToCart/
。
如何获取当前url?
您需要使用:
Request.RawUrl
这将获得您在浏览器中看到的URL。当使用Url编写与MVC的请求。Url将是重写后的路径
看起来像你是设置你的URL为/Cart/AddToCart/
。它就在您的AJAX请求url: '/Cart/AddToCart/'
中。这就是你的URL(不包括方案和主机)。
你指定type: "POST"
,所以你的有效载荷(你的data: dataToBeSent
)不作为URL的一部分发送。只有在使用GET时,数据才会在URL中发送。当你使用POST时,它在请求体中,而不是URL。
(不要把它改成GET。它现在似乎有效,但以后会让你头痛。GET请求可以由代理服务器缓存——不适合修改状态的请求,比如向购物车中添加东西。
所以在回答你问的问题时, Request.Url.PathAndQuery
是如何获得URL。只是URL不是你想要的。您想获得您的POST数据,但这通常是在ASP中完成的。净MVC。
System.Web.HttpContext.Current.Request.Url
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- Angular JS IE9 Hashbang url rewriting
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 直接下载文件,而不是从window.open(url)
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 通过js在新选项卡中有条件地打开url
- CKFinder 3为所选文件返回错误的URL
- 如何获取不属于我项目的上一页的URL
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 在URL中传递JS对象
- 将纯文本URL转换为可单击链接
- Javascript html每点击一次就会更改url
- 以角度管理动态URL
- Mathias URL shortener
- 如何有效地将游戏数据存储在URL查询字符串中
- 使用带括号的图像URL作为jQuery的背景
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 传递包含'%的参数'在URL中
- Getting wrong Url.PathAndQuery