0

我正在使用 ajax 在模式弹出窗口中获取相应的行值,以便在 MVC 4 razor 中进行编辑。对于用户名文本框,我得到这样的结果...

@Html.TextBoxFor(u => u.useredit.userName,new { @class = "input-xlarge focused", id="Edituname", type = "text" })

如果我对复选框使用相同的方法..

@Html.CheckBoxFor(u => u.useredit.isActive, new {id="EditActiv"})

我得到了普通的复选框。我哪里出错了..或者有没有其他方法可以使用复选框,,

控制器:用于通过 ajax 获取值

[HttpPost]
    public ActionResult getUserState(int userid)
    {
        TBLAppUser user = new TBLAppUser();
        user = _repository.GetUserByID(userid);
        string[] data = new string[10];
        data[0] = user.userName;
        data[1] = user.firstName;
        data[2] = user.lastName;
        data[3] = user.email;
        data[4] = user.userID.ToString();
        data[5] = user.statusID.ToString();
        data[6] = user.isdelete.ToString();
        data[7] = user.userName;
        data[8] = user.password;
        data[9] = user.isActive.ToString();
        return Json(data);

    }

javascript:

<script type="text/javascript">
function Getuser(_StateId) {
    var url = "/admin/getUserState/";
    $.ajax({
        url: url,
        data: { userid: _StateId },
        cache: false,
        type: "POST",
        success: function (data) {
            $('#Edituname').val(data[0]);
            $('#Editfname').val(data[1]);
            $('#Editlname').val(data[2]);
            $('#Editemail').val(data[3]);
            $('#Editid').val(data[4]);
            $('#state').val(data[5]);
            $('#isdelete').val(data[6]);
            $('#Editname1').val(data[7]);
            $('#Editpsd').val(data[8]);
            $('#EditActiv').val(data[9]);
        },
        error: function (response) {
            alert("error:" + response);
        }

    });
}

视图.cshtml:

 @Html.CheckBoxFor(u => u.useredit.isActive, new {id="EditActiv"})

我在编辑弹出窗口中得到了未选中的复选框..请提前帮帮我..谢谢...

4

1 回答 1

1

为了您的看法

 @Html.CheckBoxFor(u => u.useredit.isActive, new {id="EditActiv"})

进行以下更改,看看它是否有效

[HttpPost]
public ActionResult getUserState(int userid)
{
    data[9] = user.isActive.ToString()
    return Json(data);
}

尝试使用prop() 方法

 <script type="text/javascript">
 function Getuser(_StateId) {
  var url = "/admin/getUserState/";
  $.ajax({
    url: url,
    data: { userid: _StateId },
    cache: false,
    type: "POST",
    success: function (data) {
    var editCheck=(data[9]=== 'true')?true:false;
    $('#EditActiv').prop('checked',editCheck); //use prop()
   }

  });
于 2013-10-01T10:41:55.530 回答