iT邦幫忙

0

字串+分隔符號相關問題

 public string HD_METHOD { get; set; }
 public List<string> HD_METHODS { get; set; }

這兩個是我的屬性,該功能是複選紐,所以選完後我的HD_METHODS的值
會給HD_METHOD並傳回資料庫,而我在controller裡加了分隔符號

 model.HD_METHOD = "";
            foreach (string method in model.HD_METHODS)
            {
                model.HD_METHOD += method + ",";
            }
            model.HD_METHOD = model.HD_METHOD.TrimEnd(',');

這樣我傳到自料庫的值會是1,2,3,4這樣
那我想請問,雖然我這樣做新增沒問題,可是我想編輯時我卻看不到未修改前的值
我的HD_METHODS屬性原本就不是資料庫的,是我另外再創的,我想請問我該如
何做才能在編輯時能看到我未修改前的值,我想請問是否用split做分割?
是的話我目前只想到這樣

string[] hdmethod = model.HD_METHOD.Split(',');
            foreach (string i in hdmethod)
            {
                
            }

前端

<div class="form-flex-container">
   <div class="row-flex">
      <div class="col-label">
        <label class="control-label">方式</label>
      </div>
      <div class="col-input">
            <div class="icheck-row input-group-others">                                   @Html.CInputCheckboxFor(m => m.HD_METHODS, "HDOCV03")                         </div>
      </div>
   </div><!-- /.row -->
</div><!-- /.form-flex-container -->    

畫面
https://ithelp.ithome.com.tw/upload/images/20181221/20110132m59MrR9dP9.jpg

編輯畫面
https://ithelp.ithome.com.tw/upload/images/20181221/201101328z4dAVmu29.jpg

錯誤畫面
https://ithelp.ithome.com.tw/upload/images/20181221/20110132bbtuCQny0L.jpg

編輯controller

 public ActionResult HDRequireEdit(string id)
        {
            HDRequireViewModel model = GetHDRequireViewModel(id);
            model.NoticeDateString = DateHelper.ToDate(model.NOTICE_DATETIME);
            model.NoticeTimeString = DateHelper.ToTime(model.NOTICE_DATETIME);
       
            string[] hdmethod = model.HD_METHOD.Split(',');
            foreach (string i in hdmethod)
            {
                model.HD_METHODS.Add(i);
            }
           
            
            return View("HDRequireEdit", model);
        }

看更多先前的討論...收起先前的討論...
小魚 iT邦大師 1 級 ‧ 2018-12-19 15:13:15 檢舉
你需要的是 model.HD_METHODS.Add(i)嗎?
米歐 iT邦新手 3 級 ‧ 2018-12-19 15:25:13 檢舉
雖然問的沒有很清楚,但我猜小魚大的回答應該是你要的,可以寫成hdmethod = model.HD_METHOD.Split(',').ToList(),還有建議你第二區塊的程式碼可以改用 string.Join
tenno081 iT邦研究生 4 級 ‧ 2018-12-21 12:02:18 檢舉
你們好,還是不行,字體都是能成功分割出來,但卻加不進去
tenno081 iT邦研究生 4 級 ‧ 2018-12-21 16:13:06 檢舉
阿 感謝你們,我知道為什麼這樣了,我沒有給他初始化難怪怎麼樣都是null@@
tenno081 iT邦研究生 4 級 ‧ 2018-12-21 16:40:01 檢舉
最後能否在請問, 我這功能有兩個,我可以怎麼把它寫成一個方法?
model.HD_METHOD = "";
foreach (string method in model.HD_METHODS)
{
model.HD_METHOD += method + ",";
}
model.HD_METHOD = model.HD_METHOD.TrimEnd(',');

model.FREQ = "";
foreach (string freq in model.FREQS)
{
model.FREQ += freq + ",";
}
model.FREQ = model.FREQ.TrimEnd(',');

string.Join目前我還不知怎麼用,寫出來是錯誤的
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2023-02-02 04:27:58

何做才能在編輯時能看到我未修改前的值,我想請問是否用split做分割?
是的話我目前只想到這樣

string[] hdmethod = model.HD_METHOD.Split(',');
foreach (string i in hdmethod)
{

}

填空:

string[] hdmethod = model.HD_METHOD.Split(',');
model.HD_METHODS = new List<string>();
foreach (string i in hdmethod)
{
    model.HD_METHODS.Add(i);
}

範例程式僅供參考

我要發表回答

立即登入回答