首页 新闻 搜索 专区 学院

ASP.NET MVC4 主视图向分部视图传值,分部视图接受不到 怎么解决啊

0
悬赏园豆:10 [已解决问题] 解决于 2014-07-30 11:10

这是主视图代码

@model SportsStore.WebUI.Models.ProductsListViewModel

@{
    ViewBag.Title = "Products";
}

@foreach (var p in Model.Products) {

    Html.RenderPartial("ProductSummary", p);
    
}

这是分部视图代码

@model SportsStore.Domain.Entities.Product

<div class="item">
    <h3>@Model.Name</h3>
    @Model.Description


    @using (Html.BeginForm("AddToCart", "Cart"))
    {
        @Html.HiddenFor(p=>p.Id)
        @Html.Hidden("returnUrl",Request.Url.PathAndQuery)
        <input type="submit" value="加入购物车"/> 
    }
</div>

主视图中的P明明有值 但是到了分部视图却读不出 哪里出了问题?之前一直做WINFORM web刚学 求教各位下

Aiolos丶M的主页 Aiolos丶M | 初学一级 | 园豆:153
提问于:2014-07-29 15:53
< >
分享
最佳答案
0

建议再确认一下p是否真的明明有值

收获园豆:6
dudu | 高人七级 |园豆:36450 | 2014-07-29 16:23

这是调试的 这个P有值得

Aiolos丶M | 园豆:153 (初学一级) | 2014-07-29 16:32

@C'est la vie: Html.RenderPartial("ProductSummary", p);的结果是什么?

dudu | 园豆:36450 (高人七级) | 2014-07-29 16:40

这个结果怎么看啊  

这个是分部视图生成的html代码

<form action="/Cart/AddToCart" method="post"><input data-val="true" data-val-number="字段 Id 必须是一个数字。" data-val-required="Id 字段是必需的。" id="Id" name="Id" type="hidden" value="1" />
Aiolos丶M | 园豆:153 (初学一级) | 2014-07-29 16:52

@C'est la vie: 值不是传过来了吗?

id="Id" name="Id" type="hidden" value="1"
dudu | 园豆:36450 (高人七级) | 2014-07-29 17:01

@dudu: @Html.HiddenFor(p=>p.Id)  那我这么写取不到这个Value值啊,是不是我写的有问题啊

Aiolos丶M | 园豆:153 (初学一级) | 2014-07-29 17:04

@C'est la vie: 

<input data-val="true" data-val-number="字段 Id 必须是一个数字。" data-val-required="Id 字段是必需的。" id="Id" name="Id" type="hidden" value="1" />

就是 @Html.HiddenFor(p=>p.Id) 生成的

dudu | 园豆:36450 (高人七级) | 2014-07-29 17:08

@dudu: 额 但是我当我点击加入购物车的时候弹出这个错

public RedirectToRouteResult AddToCart(int productId,string returnUrl)
        {
            Product product = repository.Products.FirstOrDefault(p => p.Id == productId);
            if (product != null)
            {
                GetCart().AddItem(product, 1);
            }
            return RedirectToAction("Index", new { returnUrl });
        }
Aiolos丶M | 园豆:153 (初学一级) | 2014-07-29 17:14

@C'est la vie: 我解决了 谢谢

Aiolos丶M | 园豆:153 (初学一级) | 2014-07-30 11:10
其他回答(2)
0

建议将鼠标指针指向p,看下类型是否正确SportsStore.Domain.Entities.Product

收获园豆:2
爱编程的大叔 | 园豆:30773 (高人七级) | 2014-07-29 16:31

这个P应该是SportsStore.Domain.Entities.Product

支持(0) 反对(0) Aiolos丶M | 园豆:153 (初学一级) | 2014-07-29 16:55
0

这样的写法,会造成页面有很多相同ID的隐藏域。

收获园豆:2
幻天芒 | 园豆:36910 (高人七级) | 2014-07-29 16:41

啊,我刚学这个 先写个例子  以后注意点

支持(0) 反对(0) Aiolos丶M | 园豆:153 (初学一级) | 2014-07-29 16:53

@C'est la vie: :)

支持(0) 反对(0) 幻天芒 | 园豆:36910 (高人七级) | 2014-07-29 22:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册