【问题标题】:Change button if it is in a list如果按钮在列表中,则更改按钮
【发布时间】:2018-11-30 14:51:33
【问题描述】:

我正在尝试显示两个按钮,前提是它位于现有列表中。但到目前为止,它还没有成功。

我想要某个按钮显示它是否在 Wishlist Controller 中声明的列表中:

public ActionResult Index()
{
    IQueryable<WishlistModel> model = null;
    int wishlist_id = Check();

    if (wishlist_id != 0)
    {
        var WishLines = _context.WishLines.Where(l => l.Wishmain_id == wishlist_id).ToList();
        if (WishLines.Count() > 0)
        {
            model = from wishlines in _context.WishLines
                    join items in _context.Items on wishlines.itm_id equals items.id
                    join wishmain in _context.WishMains on wishlines.Wishmain_id equals wishmain.id
                    where wishlines.Wishmain_id == wishlist_id
                    select new WishlistModel
                    {
                        description = items.description,
                        price = items.price,
                        ordline_id = wishlines.id,
                        photo_url = items.photo_url,
                        item_id = items.id
                    };
            ViewBag.model_for_view = model;
            return View(model.ToList());
        }
    }
    ViewBag.model_for_view = model;
    return View();
}

当它不在列表中时显示某个按钮

我在视图上这样尝试过:

@{
    WishLines wishLine = new WishLines();
    bool check = wishLine.itm_id == item.id;

    if (SignInManager.IsSignedIn(User))
    {
        if (check == true)
        {
            <a>Remove from favorites list</a>
        }
        else
        {
            <a>Add to favorites list</a>
        }
    }
}

但这只会显示else 选项,即使它在列表中。

我怎样才能让它显示正确的按钮?

【问题讨论】:

  • item.id 来自视图上的模型,@model IEnumerable&lt;bytme.Models.Item&gt;wishLine.itm_id 来自模型 WishLines
  • 因此,您创建了一个空的 WishLines 对象,并惊讶于 itm_id 与任何内容都不匹配?
  • 我将代码更改为从控制器继承 ViewBag 以继承 WishLines itm_id。感谢所有让我看到我的错误的人!创建一个空的 WishLines 不是检索 id 的方法。

标签: c# asp.net-mvc razor asp.net-core-mvc


【解决方案1】:
WishLines wishLine = new WishLines(); 

您正在初始化一个新的 WishLines,因此它的 itm_id 永远不会等于 item.id

【讨论】:

    【解决方案2】:

    wishLine 是新的。所以 wishLine.itm_id 总是 0 。

    WishLines wishLine = new WishLines(); // wishLine is new
    bool check = wishLine.itm_id == item.id; // 0 == item.id returns false
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      相关资源
      最近更新 更多