【问题标题】:how to get the checkbox in edit modal popup in MVC-4如何在 MVC-4 的编辑模式弹出窗口中获取复选框
【发布时间】:2013-10-01 10:08:17
【问题描述】:

我正在使用 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);
        }

    });
}

view.cshtml:

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

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

【问题讨论】:

  • 普通复选框是什么意思?没有checked 的复选框或者它在屏幕中不可用?

标签: javascript asp.net-mvc razorengine


【解决方案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()
   }

  });

【讨论】:

  • 但它是布尔类型..如何在没有 ToString()..fun.. 的情况下将其存储在 data[9] 中?...
  • @ArulPrasanth,我以为你用的是object[]。您可以在javascript中添加.ToString()parse back to bool
  • @ArulPrasanth,为 string[] 更新并在 javascript 中操作
猜你喜欢
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多