@ Html.CheckBoxFor使用模型中的值设置值

时间:2014-06-08 14:19:36

标签: asp.net-mvc

如何使用SelectedWebSite1URL属性的值设置此复选框的值?

@model  WLWeb.Models.MyModel
...
    <label>@Html.CheckBoxFor(m => m.MyModel.SelectedWebSite1, new { @id = "chk1", @class = "chkWebSite", value = "HowDoIsetThis?" })@Html.DisplayFor(m => m.MyModel.SelectedWebSite1Name)</label>

模型:

public class MyModel
{
...
        public bool SelectedWebSite1 { get; set; }

        public string SelectedWebSite1Name { get; set; }

        public string SelectedWebSite1URL { get; set; }
}

注意:我需要这个的原因是用jquery获取值(网址url):

$(function () {
    $('#btnGoSite').click(function () {
        $('.chkWebSite:checked').each(function () {
            alert(this.value);
        });
    });
});

3 个答案:

答案 0 :(得分:2)

我认为你误解了checkboxcheckbox用于布尔值(truefalse)而非字符串。

适用于public bool SelectedWebSite1 { get; set; },但不适用于public string SelectedWebSite1URL { get; set; }

如果您想访问SelectedWebSite1URL,请在隐藏输入中呈现其值并使用类似的内容(假设隐藏输入位于复选框之后)

$(function () {
  $('#btnGoSite').click(function () {
    $('.chkWebSite:checked').each(function () {
        alert($(this).next('input[type="hidden"]').val());
    });
  });
});

答案 1 :(得分:1)

删除MyModel

  <label>@Html.CheckBoxFor(m => m.SelectedWebSite1, new { @id = "chk1", @class =  "chkWebSite", value = "yourvaluehere?" })
  @Html.DisplayFor(m => m.SelectedWebSite1Name)</label>

答案 2 :(得分:-1)

试试这个

<label>

    @Html.CheckBoxFor(x => x.SelectedWebSite1,new { @id = "chk1", @class = "chkWebSite"})

    @Html.DisplayFor(m => m.MyModel.SelectedWebSite1Name)
 </label>

无需在html对象属性中设置值,因为复选框将根据SelectedWebSite1的值为true / false自动检查/取消选中。