System.Web.Mvc.ViewUserControl<Model.SaleProduct>
SaleProduc表,产品实体类,以前里面有个产品图片的字段ProductImg
<%:Html.EditorFor(model=>model.ProductImg) %>这样就可以显示上传图片的控件
现在我把这个字段放在一个表里面,怎么在页面显示另外一个实体表SaleProductImg里的图片字段?

解决方案 »

  1.   

    现在我把这个字段放在一个表里面=》现在我把这个字段做成一个表SaleProductImg
    里面也是字段ProductImg以前的SaleProduct这张表的ProductImg字段就删除了
      

  2.   

    主要问题是在 <%:Html.EditorFor 这个必须要页面强类型
    不过使用Mvc.ViewUserControl<Model.SaleProduct>之后,另外一个表的字段怎么显示,是个问题
      

  3.   

    写个自定义的 view model,把要传递给view的东西都塞到这里<%:Html.EditorFor(model=>model.X.SaleProductImg) %>
      

  4.   

    我是用EF生成的,对应表来的
    你说的自定义model是怎么回事?可以详细点吗
      

  5.   

    设置属性为外键实体,怎么设置?
    另外我这个问题不是获取数据的问题,是怎么另外一个实体类里的一个属性(字段)关键点在与页面是ViewUserControl<Model.SaleProduct>这个强类型
    我需要的EditorFor里面的model是SaleProductImg类型
      

  6.   

    1
    public class X
    {
    public SaleProduct SaleProduct{get;set;}
    public SaleProductImg SaleProductImg{get;set;}
    }2
    ViewUserControl<X>3
    <%:Html.EditorFor(model=>model.X.SaleProductImg) %>
      

  7.   

    哦 这样的话在编辑的时候就不可以了
    传入字典的模型项的类型不匹配,一个是页面的X,在Controller里返回的是Product的类型------------------
    假如这个问题解决了
    另外出现一个新问题,在编辑的时候图片表又要循环的添加到文本框
    [email protected]@3.jpg@
    类似上面这样,觉得比较麻烦上传图片我是这么做的,一个文本框是存放上传图片的名字,一个上传控件,一次可以上传多张,都是用@符号连接图片名字
    或者可以给出一个产品图片上传多张存放表里面的一个方案也可以
    再+100分
      

  8.   

    你没有改 controller 的权限?那就不好办了,我也遇到不改动代码,但是增加复杂功能的事情,正在头痛
      

  9.   

    Controller可以修改,意思是说
    public ActionResult Edit(Guid? id)
            {
                var item = productBll.Get(id);            return View(item);
            }
    编辑的时候,返回的是产品的model
    而页面是你说的那种X类型,不匹配使用dynamic的话,表达式树不能为动态,所以只能是强类型
    EditorFor()第一个参数是m=>m.field 这种,这个lambda表达式到底是代表什么?就是个属性名称的话,直接使用 EditorFor("field")又报错
    总的来说这个问题想解决的问题是:添加产品的时候怎么添加多个产品图片
      

  10.   

    可以改就方便了,X x = new X();
    x.a = item.a
    x.b = item.b
      return View(x);
      

  11.   

    你的EditorFor 这块就不用mvc的HTML辅助方法,直接使用html控件, 
    编辑时,用js赋值,
    或者<input value='<%=Model.SaleProductImg.name%> />',提交时后台处理。
      

  12.   

    这样的话做不了验证判断了to:淡泊 
    <input value='<%=Model.SaleProductImg.name%> />' ?不怎么明白是怎么做的
    上传我使用的是uploadify.swf,是js获取返回值赋值
    我想知道mvc里面上传多张图片是怎么保存的?在字段里面用@隔开,是没有问题,如果是把图片放到图片表里面是怎么做的?
      

  13.   

    给 X 加上 DataAnotation 里的验证特性,一样的
      

  14.   

    哦,验证我是用特性 [Required(ErrorMessage = "不能为空")]
    ModelState来验证的一个产品上传多张图片你是怎么处理的?
      

  15.   

    用你的 uploadify,每传一个图片,服务端返回图片的 id,用 jq 为这个 id 添加一个 hidden,比如 <input name="ufile" value="1"
    <input name="ufile" value="2"
    <input name="ufile" value="3"...POST 之后在 controller 里看 form["ufile"] 的值,是逗号分隔的,像这样:"1,2,3"。自己拆一下,保存起来就行了
      

  16.   

    可以建个 product images 表,结构大致如下:id
    product id
    path
    ordering还可以加些 title 之类的,看你的需求。EF生成的模型不是铁板一块,你可以对他进行封装