Request.Url.PathAndQuery
        public RedirectResult AddToCart(Cart cart, int productId, string returnUrl)
{
Product product = this.productRepository.Products
.FirstOrDefault(p => p.ProductID == productId); if (null != productId)
{
cart.AddItem(product, );
} returnUrl = this.Request["returnUrl"]; //return RedirectToAction("Index", new { returnUrl });
return Redirect(returnUrl);
}
@model Easy5.ASPMVC.SportsStore.Domain.Entities.Product

<div class="item">
<h3>
@Model.Name
</h3>
@Model.Description @using(Html.BeginForm("AddToCart", "Cart"))
{ /* 1.创建一个隐藏的字段ProductID
*/
@Html.HiddenFor(x=>x.ProductID) /* 2.实参:"returnUrl" 必须与对应的参数的参数名名一样
*/
@Html.Hidden("returnUrl", Request.Url.PathAndQuery)/*返回本页面的请求地址*/

<input type="submit" value="+ 加入购物车"/>
} <h4>
@Model.Price.ToString("c")
</h4>
</div>

        $.ajax       

@Url.Action
                        <td style="text-align: center;">
<img src="@Url.Content("~/Images/Update.png")" alt="更新" title="更新" class="UpdateShoppingCartItemButton" id="@string.Format("update_{}", item.ID)" />
</td>
<td style="text-align: center;">
<img src="@Url.Content("~/Images/Delete.png")" alt="删除" title="删除" class="DeleteShoppingCartItemButton" id="@string.Format("delete_{}", item.ID)" />
</td> @section scripts{
<script type="text/javascript">
function IsNumeric(input) {
return (input - ) == input && input.length > ;
} $(function () {
$(".UpdateShoppingCartItemButton").click(function () {
var buttonID = $(this).attr('id');
var qid = buttonID.replace('update_', 'quantity_');
var itemID = buttonID.replace('update_', '');
var quantity = $('#' + qid).val();
var postUrl = '@Url.Action("UpdateShoppingCartItem", "Home")';
var redirectUrl = '@Url.Action("ShoppingCart", "Home")'; if (!IsNumeric(quantity)) {
alert('输入的数量值必须是数值。');
return;
} var intQuantity = parseInt(quantity);
if (intQuantity <= ) {
alert('输入的数量值必须是大于或等于1的数值。');
window.location.href = redirectUrl;
return;
} $.ajax({
type: "POST",
url: postUrl,
data: { shoppingCartItemID: itemID, quantity: intQuantity },
success: function (msg) {
window.location.href = redirectUrl;
}
});
}); $('.DeleteShoppingCartItemButton').click(function () {
if (confirm('是否确定要删除所选商品?')) {
var buttonID = $(this).attr('id');
var itemID = buttonID.replace('delete_', '');
var postUrl = '@Url.Action("DeleteShoppingCartItem", "Home")';
var redirectUrl = '@Url.Action("ShoppingCart", "Home")'; $.ajax({
type: "POST",
url: postUrl,
data: { shoppingCartItemID: itemID },
success: function (msg) {
window.location.href = redirectUrl;
}
});
}
});
});
</script>
}

【Asp.Net-- 杂七杂八】的代码的更多相关文章

  1. ASP.NET中使用代码来进行备份和还原数据库

    ASP.NET中使用代码来进行备份和还原数据库  SQL代码: 1 2 3 4 5 -- 备份数据库 backup database db_CSManage to disk='c:\backup.ba ...

  2. Asp.Net MVC 页面代码压缩筛选器-自定义删除无效内容

    Asp.Net MVC 页面代码压缩筛选器 首先定义以下筛选器,用于代码压缩. /*页面压缩 筛选器*/ public class WhiteSpaceFilter : Stream { privat ...

  3. IIS ASP.NET 版本转换批处理代码

    原文 IIS ASP.NET 版本转换批处理代码 用来转换asp.net版本的代码,需要的朋友可以参考下. 标识符的查看方法:iisaspnet.bat代码 复制代码代码如下: @echo off e ...

  4. 最新版 INSPINIA IN+ - WebApp Admin Theme v2.7.1,包含asp.net MVC5示例代码,做管理系统最佳的选择。

    下载地址:http://download.csdn.net/download/wulang1988/10039402 最新版 INSPINIA IN+ - WebApp Admin Theme v2. ...

  5. IE浏览器如何调试Asp.net的 js代码

    不管我们开发什么项目,都需要使用调试.后端的调试比较简单.前端js调试稍微复杂了一点,但是也别怕,因为我们有很多调试前端js代码的浏览器工具.比如IE浏览器.firefox浏览器.chrome浏览器等 ...

  6. 【转载】ASP.NET 内联代码、内联表达式、数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号)

    ASP.NET 内联代码.内联表达式.数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号) 今天在做渭南电脑维修网的一个小功能时遇到了一些问题,因此特别列出,以备他日之用. 首先对 ...

  7. ASP.NET 内联代码、内联表达式、数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号)

    今天在做渭南电脑维修网的一个小功能时遇到了一些问题,因此特别列出,以备他日之用. 首先对ASP.NET 内联代码.内联表达式.数据绑定表达式的概念进行罗列,详细概念以及基本的用法我就不在这里罗嗦了,请 ...

  8. ASP.Net 打通服务器代码和前台界面的特殊符号

    1.<% %>用来绑定后台代码 如: < % ;i<;i++) { Reaponse.Write(i.ToString()); } %> 2.<%# %> 是 ...

  9. ASP.NET 一句代码实现批量数据绑定

    摘要:对于一个以数据处理为主的应用中的UI层,我们往往需要编写相当多的代码去实现数据绑定.如果界面上的控件和作为数据源的实体类型之间存储某种约定的映射关系,我们就可以实现批量的数据绑定,作者开发了的插 ...

  10. ASP.NET Razor——ASP.NET Razor - C#代码语法

    Razor 同时支持 C# (C sharp) 和 VB (Visual Basic). 主要的 Razor C# 语法规则 Razor 代码块包含在 @{ ... } 中 内联表达式(变量和函数)以 ...

随机推荐

  1. 时间类型(DataTime)赋空值

    暂时只发现这一个方法 如果直接Datetime time=DBNull.Value;会报null与DataTime没有隐式转换 SqlCommand cmd = SqlCommand(conn); / ...

  2. 最新13个加速 Web 开发的框架和工具

    我们为开发人员挑选了15个最新的Web开发框架,你肯定尝试一下这些新鲜的框架,有的可能略微复杂,有的提供了很多的配置选项,也有一些窗口小部件和界面交互的选择.他们将帮助你创建更优秀的网站,提供给用户更 ...

  3. JS函数式编程【译】第二章总结

  4. A@2a139a55 结果产生的原因

    程序代码: public class ExplorationJDKSource { /** * @param args */ public static void main(String[] args ...

  5. struts2值栈分析

    前段日子对ognl表达式不是很理解,看了几本书上关于ognl表达式的描述后还是感觉很难,前几天学习了struts2中值栈的内容,现在感觉ognl表达式其实很容易. struts2中利用值栈来存储数据, ...

  6. 胸腺嘧啶“T”

    4.下列物质或结构中含胸腺嘧啶“T”的是( )A.DNA聚合酶 B.烟草花叶病毒C.ATP D.B淋巴细胞中的线粒体

  7. sql模糊查询

    SQL 模糊查询 在进行数据库查询时,有完整查询和模糊查询之分. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: ...

  8. 真正理解KMP算法

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4403560.html 所谓KMP算法,就是判断一个模式串是否是一个字符串的子串,通常的算法当 ...

  9. VIM中的寄存器简介

    原来在vim粘贴从其他地方复制过来的文本的时候,一直用的shift + inert,那时就想,能不能够直接就像p那样粘贴,不必非得进入插入模式再来粘贴.后来看了<vim实用技巧>上关于vi ...

  10. Linux C 程序 进程间通信(20)

    进程间通信 1.进程间通信的几种手段:    (1).管道        数据只能由一个进程流向另一个进程(其中一个读管道,一个写管道),如果要建立全双工通信,需要建立两个管道        只能用于 ...