在asp.net中从jQuery设置Model变量

时间:2011-08-31 14:07:19

标签: jquery asp.net asp.net-mvc model controller

我有一个jQuery脚本,让我搜索/过滤人员列表并选择它们。使用它,它允许我根据该人的特征设置div。

但是,我需要稍后使用此变量(在我发布表单之后。)

有没有办法在jQuery中为personID设置模型变量?即:

<%: Model.PersonId == ui.item.id; %>

还是有另一种方法吗?

另外 - 我使用提交按钮发布表单,所以如果有办法我可以设置Html.Hidden(),那么这也可以。

2 个答案:

答案 0 :(得分:1)

您可以使用javascript创建隐藏字段,使用您需要的任何值设置其值,然后将其与表单一起提交。然后,您可以在控制器中访问此隐藏字段值。

$("form").append("<input type='hidden' name='hiddenPersonId' value='"+ui.item.id+"' />");

可选地

$("form").append($("<input type='hidden' name='hiddenPersonId'/>").val(ui.item.id));

在服务器端,您可以使用

获取此值
Request.Form["hiddenPersonId"];

答案 1 :(得分:0)

模型在服务器上,jquery在客户端上,因此您发布的代码将无法运行。有很多方法可以做到这一点。您的javascript可以设置隐藏的表单字段,或者向服务器发送ajax请求,以获取更新的模型。

    <html>
    <head>
    <script>
    $(document).ready(function() {
    $("#submit-button").click(function(){
      $("#hidden-input").val(new Date()); //set the value to the current date
    });
    });
    </script>
    </head>
    <body>
     <form>
      <input type="hidden" id="hidden-input" name="hidden-input" />
      <input type="submit" id="submit-button" value="submit" />
     </form>

    <body>
</html>