使用razor选中复选框后复选框

时间:2012-05-17 18:43:17

标签: c# asp.net-mvc-3 razor

正如标题所示,我试图在单击一个复选框后将值从一个文本框复制到另一个文本框。我知道如何通过javascript做到这一点,唯一的问题是它需要在服务器端用剃刀完成。我试图通过下面的代码实现这一点,但是,它一直在给我臭名昭着的“对象引用未设置为对象的实例”。错误。但我不确定它所指的是什么,任何帮助都会受到赞赏。

<div class="editor-field">
    @Html.CheckBoxFor(model => model.SameAddress, new { id = "chkAddress" })

    @{bool isChecked = false; 
        if (Boolean.TryParse(Request.Form.GetValues("chkAddress")[1], out isChecked) == true)
        {

        }
    }
</div> 

1 个答案:

答案 0 :(得分:2)

Razor不会帮助你。有两种方法可以做到这一点。

1)使用javascript :收听复选框更改事件,如果选中,请阅读第一个文本框的内容并将其粘贴到第二个文本框中。这是我想要的首选。

有点像这样

$(function(){
    $("#chkCopy").change(function(){
        $("#address2").val("");
       if(this.checked)
       {
            $("#address2").val($("#address1").val())

            //Lets read city and paste it in the second place as well.
            $("#city2").val($("#city1").val())
       }                
    });
});​

当您点击标识为address1的复选框时,假设您要将ID为address2的文本框复制到ID为chkCopy的文本框

工作样本:http://jsfiddle.net/9fM89/4/

2)使用formpost :让用户点击“复制”按钮,然后将表单提交到您的操作方法,您可以在其中读取这些表单元素的值并将其设置在这些属性上用于第二个复选框并将其返回到视图。