ASPNET MVC3技术要点(8)

发布时间:2021-06-06

ASPNET MVC3技术要点

}

3.1.3 显式调用框架的模型绑定功能

如果视图中无模型变量,需要将模型变量绑定到context。例如: ProductSummary.cshtml视图代码:

@model SportsStore.Domain.Entities.Product

<div class="item">

@if (Model.ImageData != null) {

<div style="float:left;margin-right:20px">

<img width="75" height="75" src="@Url.Action("GetImage", "Product", new { Model.ProductID })" /> </div> }

<h3>@</h3> @Model.Description

@using(Html.BeginForm("AddToCart", "Cart")) { @Html.HiddenFor(x => x.ProductID)

@Html.Hidden("returnUrl", Request.Url.PathAndQuery) <input type="submit" value="+ Add to cart" /> }

<h4>@Model.Price.ToString("c")</h4> </div>

Cart控制器AddToCart动作函数代码:

public RedirectToRouteResult AddToCart(Cart cart, int productId, string returnUrl) {

Product product = repository.Products.FirstOrDefault(p => p.ProductID == productId); if (product != null) {

//GetCart().AddItem(product, 1); cart.AddItem(product, 1); }

return RedirectToAction("Index", new { returnUrl }); }

ProductSummary.cshtml中没有Cart对象,那么AddToCart动作函数的参变量是从哪里来的呢?实际它是在CartModelBinder.cs中实现,代码如下:

public class CartModelBinder : IModelBinder {

private const string sessionKey = "Cart";

public object BindModel(ControllerContext controllerContext,

ModelBindingContext bindingContext)

{

// get the Cart from the session

Cart cart = (Cart)controllerContext.HttpContext.Session[sessionKey];

ASPNET MVC3技术要点(8).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219