无法访问.CS文件中的隐藏值

时间:2012-05-02 13:41:26

标签: jquery asp.net-mvc-3 c#-4.0 entity-framework-4.1

我遇到了一点问题

我的表单包含3个隐藏控件,我通过jquery发送值。在我保持警觉的同时它的工作正常。

我正在使用FormCollection并尝试在.cs文件中检索这些隐藏的值,但我无法退出这些值。当我在FormCollections上保留断点时,它显示所有隐藏的控件名称,包括键号。

查看:

<tr>
    <td colspan ="2">
        @Html.Hidden("hdnddlid")
        @Html.Hidden("hdnrblMale")
        @Html.Hidden("hdnrblFeMale")
    </td>
</tr>

<script type="text/javascript">
    $(document).ready(function () {
        $("input[name='Gender']").change(function () {
            if ($("input[name='Gender']:checked").val() == '1') {
                hdnrblMale = "Male";
            }
            else if ($("input[name='Gender']:checked").val() == '0') {
                hdnrblFeMale = "FeMale";
            }
        });
    });
</script>

.cs文件中的代码

public static void InsertPersonalDetails(PersonalDetails modelPersonal, FormCollection frmHdnValues)
{
    try
    {
        PersonalDbContext db = new PersonalDbContext();

        string Male = frmHdnValues["hdnrblMale"].ToString();
        string Female = frmHdnValues["hdnrblFeMale"].ToString();

        db.Entry(modelPersonal).State = EntityState.Added;
        //pDetails.Add(Objpd);
        db.SaveChanges();
        // return pDetails;
    }

由于

2 个答案:

答案 0 :(得分:2)

我错过了什么或者你的jQuery不需要:

$("input[name='hdnrblMale']").val("Male");

而不是

hdnrblMale = "Male";

还要确保字段位于正在提交的表单中。

我使用

的组合
  • Visual Studio :断点,单步执行代码,即时窗口
  • Chrome :JS,JS即时窗口中的断点,检查元素
  • fiddler2 :看到它实际上是发送到服务器和从服务器发送的(注意可能会使用localhost而不是localhost来进行流量传输 出现在提琴手中 - 例如localhost。:69230而不是 本地主机:69230)

调试这种类型的东西..这样你应该可以看到链的所有部分。

答案 1 :(得分:0)

尝试隐藏输入类型并在控制器中写入request.form["FieldName"]。这适用于我的情况