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;
    }

谢谢

4

2 回答 2

2

我是否遗漏了什么或者您的 jQuery 不需要:

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

代替

hdnrblMale = "Male";

还要确保这些字段在提交的表单中。

我使用的组合

  • Visual Studio:断点、单步执行代码、即时窗口
  • Chrome:JS中的断点,JS即时窗口,检查元素
  • fiddler2:看到它实际上是从服务器发送和发送的(注意可能会使用 localhost. 而不是 localhost 来显示在 fiddler 中的流量 - 例如 localhost.:69230 而不是 localhost:69230)

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

于 2012-05-02T13:45:56.700 回答
0

尝试 Input type hidden 并在控制器中 write request.form["FieldName"]。这在我的情况下有效

于 2012-05-04T09:19:13.667 回答