iT邦幫忙

0

能否請問這段怎麼轉換成RAZOR語法

<div class="icheck-row input-group-others">
                                            <input class="cs" id="LE_PREPARE_CODES_closewindow" name="LE_PREPARE_CODES" type="checkbox" value="關閉門窗" data-value_closewindow="2" />
                                            <label for="LE_PREPARE_CODES_關閉門窗">關閉門窗</label>
                                            <input class="cs" id="LE_PREPARE_CODES_closefan" name="LE_PREPARE_CODES" type="checkbox" value="關閉冷氣/電風扇" data-value_closefan="2" />
                                            <label for="LE_PREPARE_CODES_關閉冷氣/電風扇">關閉冷氣/電風扇</label>
                                            <input class="cs" id="LE_PREPARE_CODES_prepare" name="LE_PREPARE_CODES" type="checkbox" value="用物準備齊全" data-value_prepare="2" />
                                            <label for="LE_PREPARE_CODES_用物準備齊全">用物準備齊全</label>                                                                                   
                                        </div>

jquery

$(function () {

        $('.cs').on('change', function () {
            calculateScore();
        });
        calculateScore();
    })
    function getValue(str) {
        if (isNaN(str)) return 0;
        else return parseInt(str, 10);
    }
    function calculateScore() {

     
        var closewindow = getValue($('input[id="LE_PREPARE_CODES_closewindow"]:checked').attr('data-value_closewindow'));
        var closefan = getValue($('input[id="LE_PREPARE_CODES_closefan"]:checked').attr('data-value_closefan'));
        var prepare = getValue($('input[id="LE_PREPARE_CODES_prepare"]:checked').attr('data-value_prepare'));
        var s1 = 6;
        var score1 = s1 - closewindow - closefan - prepare;
        $('#LE_PREPARE_SCORE').val(score1);
}

屬性

   public List<string> LE_PREPARE_CODES { get; set; }
    public string LE_PREPARE_CODE { get; set; }

https://ithelp.ithome.com.tw/upload/images/20190117/20110132ioShllFr8u.jpg

畫面
https://ithelp.ithome.com.tw/upload/images/20190117/20110132TArMt4vKzl.jpg

資料庫的值
https://ithelp.ithome.com.tw/upload/images/20190117/20110132fKZHJFqavl.jpg

我傳入資料庫的是LE_PREPARE_CODE這個屬性,為了傳入一個以上的選項
另外新增了LIST屬性

https://ithelp.ithome.com.tw/upload/images/20190117/20110132oYqNBeDFUt.jpg

看更多先前的討論...收起先前的討論...
fillano iT邦超人 1 級 ‧ 2019-01-17 10:37:19 檢舉
...你不知道在.NET MVC怎麼在controller傳東西給view嗎?
fillano iT邦超人 1 級 ‧ 2019-01-17 10:38:11 檢舉
線上教學頗多,建議先看一下。
tenno081 iT邦研究生 4 級 ‧ 2019-01-17 11:21:16 檢舉
你好,您是指這種嗎?
string[] le_prepare = model.LE_PREPARE_CODE.Split(',');
foreach (string i in le_prepare)
{
model.LE_PREPARE_CODES.Add(i);
}

我這個是複選紐,用逗號做區隔
整段是這樣
public ActionResult HomeVisitEdit(string id)
{
HomeVisitViewModel model = GetHomeViewModel(id);
model.AdjustFromView();
if (model.LE_PREPARE_CODE != null)
{
string[] le_prepare = model.LE_PREPARE_CODE.Split(',');
foreach (string i in le_prepare)
{
model.LE_PREPARE_CODES.Add(i);
}
}
//model.Assess();
return View("HomeVisitEdit", model);
}

public HomeVisitViewModel GetHomeViewModel(string Guid)
{
HomeVisitService hvsrvc = new HomeVisitService();
PD_HOME_VISIT pdhomevisit = hvsrvc.FindGuid(Guid);
HomeVisitViewModel mhomevisit = new HomeVisitViewModel();
mhomevisit.FromHomeVisit(pdhomevisit);
return mhomevisit;
}
偵錯開啟後,return View("HomeVisitEdit", model); 時,我看是有抓到值的
但卻沒有顯示在畫面上,所以我才想是不是要把前端做一下修改
fillano iT邦超人 1 級 ‧ 2019-01-17 14:23:50 檢舉
@foreach(var s in Model. LE_PREPARE_CODES)
{
<label>@s<input name="LE_PREPARE_CODES" value="@s" /></label>
}
類似這樣?
fillano iT邦超人 1 級 ‧ 2019-01-17 17:23:53 檢舉
以checkbox的用途來說,我上面這樣寫應該不太對,所以另外寫了一個例子:
https://dotnetfiddle.net/AC0KuO

不知道這是否是你的問題?
tenno081 iT邦研究生 4 級 ‧ 2019-01-17 18:12:18 檢舉
你好,有點像,但又不太是,我這個主要功能是做一個計算,會有三個複選紐
跟一個textbox,都沒選是6分,選一個扣2分,都選即為0分,我再附上一些
給您看一下
tenno081 iT邦研究生 4 級 ‧ 2019-01-17 18:22:21 檢舉
然後我參考一下您的寫法
我用這樣
<label><input class="cs" id="LE_PREPARE_CODES_closewindow" type="checkbox" name="LE_PREPARE_CODES" value="關閉門窗" checked="@Model.LE_PREPARE_CODES.Contains("關閉門窗")" data-value_closewindow="2" /> 關閉門窗</label><br>
進入編輯頁面時沒問題,只是新增頁面時就會跑出
Object reference not set to an instance of an object.這個錯誤
但是我那個地方沒給值應該也是沒差的才對@@
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2023-01-29 04:45:35

RAZOR語法:

<div class="icheck-row input-group-others">
    <div class="form-check">
        <input asp-for="LE_PREPARE_CODE" class="form-check-input cs" id="LE_PREPARE_CODES_closewindow" value="關閉門窗" data-value_closewindow="2" />
        <label class="form-check-label" for="LE_PREPARE_CODES_關閉門窗">關閉門窗</label>
    </div>
    <div class="form-check">
        <input asp-for="LE_PREPARE_CODE" class="form-check-input cs" id="LE_PREPARE_CODES_closefan" value="關閉冷氣/電風扇" data-value_closefan="2" />
        <label class="form-check-label" for="LE_PREPARE_CODES_關閉冷氣/電風扇">關閉冷氣/電風扇</label>
    </div>
    <div class="form-check">
        <input asp-for="LE_PREPARE_CODE" class="form-check-input cs" id="LE_PREPARE_CODES_prepare" value="用物準備齊全" data-value_prepare="2" />
        <label class="form-check-label" for="LE_PREPARE_CODES_用物準備齊全">用物準備齊全</label>
    </div>
</div>

<script>
    $(function () {
        $('.cs').on('change', function () {
            calculateScore();
        });
        calculateScore();
    });

    function getValue(str) {
        if (isNaN(str)) return 0;
        else return parseInt(str, 10);
    }

    function calculateScore() {
        var closewindow = getValue($('input[id="LE_PREPARE_CODES_closewindow"]:checked').attr('data-value_closewindow'));
        var closefan = getValue($('input[id="LE_PREPARE_CODES_closefan"]:checked').attr('data-value_closefan'));
        var prepare = getValue($('input[id="LE_PREPARE_CODES_prepare"]:checked').attr('data-value_prepare'));
        var s1 = 6;
        var score1 = s1 - closewindow - closefan - prepare;
        $('#LE_PREPARE_SCORE').val(score1);
    }
</script>

記得在C#屬性上面加上[FromForm]屬性

[FromForm]
public string LE_PREPARE_CODE { get; set; }

我要發表回答

立即登入回答