加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – SqlFunctions.StringConvert添加不必要的填充

发布时间:2020-12-15 23:05:33 所属栏目:asp.Net 来源:网络整理
导读:在我的ViewModel中,我返回下面的一个下拉列表: public IEnumerableSelectListItem Statuses { get { using (var context = new AssetManager.Models.AssetManagerEntities()) { var query = from status in context.AssetStatuses where status.Reserved !=
在我的ViewModel中,我返回下面的一个下拉列表:
public IEnumerable<SelectListItem> Statuses
    {
        get
        {
            using (var context = new AssetManager.Models.AssetManagerEntities())
            {
                var query = from status in context.AssetStatuses
                            where status.Reserved != true
                            select new SelectListItem()
                                       {
                                           Value = SqlFunctions.StringConvert((double)status.Id),Text = status.Name,Selected = false
                                       };

                return query.ToList();
            }
        }
    }

那么在我看来它有点像这样:

@Html.DropDownListFor(model => model.Status,(IEnumerable<SelectListItem>)Model.Statuses)

这一切都可以正常工作,除了SqlFunctions.StringConvert,默认情况下使字符串的长度为10,所以我最终在这个html:

<option value="         7">Free to loan</option>

记下值字段中的间距.这是一个问题,因为我的ViewModel需要这个字段是一个int.

我可以简单地指定length参数,但这不是动态的.

有没有人看到这个问题,还是有一个解决方案呢?

谢谢,
缺口

解决方法

执行此操作的最简单方法可能是将转换工作卸载到服务器上,而不是数据上下文.如果您将数据层与表现层分开,则会自动发生.但为简单起见,我将坚持使用您目前的架构:
var query = from status in context.AssetStatuses
                        where !status.Reserved
                        select new 
                                   {
                                       status.Id,status.Name
                                   };
            return query.AsEnumerable()
                .Select(status => new SelectListItem
                                   {
                                       Value = status.Id.ToString(),Selected = false
                                   })
                .ToList();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读