访问JQuery对话框中的变量

时间:2014-03-14 05:29:40

标签: jquery asp.net-mvc dialog viewbag

我在viewBag中有一个用户ID我想访问对话框中的ViewBag

<script>
    $(function () {
        $("#dialog").dialog({
            autoOpen: false,
            modal: true,
            width: 339,
            overlay: {
                backgroundColor: 'red',
                opacity: 0.5
            },
            show: {
                effect: "blind",
                duration: 500
            },
            hide: {
                effect: "explode",
                duration: 700
            }
        });
    });

    function OpenDialog()
    {
        $('#dialog').dialog("open");
    }
</script>

<div id="open" onclick="OpenDialog();">Click To Open</div>  

  @ViewBag.UserID
    <div id="dialog">   
            <table>
                <tr>
                    <td>User ID</td>
                    <td>@ViewBag.UserID</td>
                </tr>
                <tr>
                    <td>Comments</td>
                    <td>@Html.TextArea("CommentsTextBox")</td>
                </tr>
            </table>
            <div class="alignCenter"> 
                 <input type="submit" value="Add" /> 
                 <input type="button" value="Cancel" /> 
            </div>
    </div>

3 个答案:

答案 0 :(得分:2)

您的代码应该有效但可能是Jquery对话框更改div <div id="dialog">的dom元素值

您可以尝试以下方法。

将UserId保留在隐藏字段中。

<input type="hidden" id="userId" value="@ViewBag.UserID" />

<div id="dialog">

中为UserId创建占位符
<div id="dialog">
    <table>
        <tr>
            <td>User ID</td>    
            <td><span id="dialogUserId"></span></td>
        </tr>
    </table>
</div>

获取UserId并在OpenDialog()事件中指定表单占位符。

<script>
function OpenDialog()
    {
        $("#dialogUserId").val($("#userId").val()); //if this won't work try adding this line after dialog("open")
        $('#dialog').dialog("open");
    }
</script>

答案 1 :(得分:1)

如果您只想在jquery中访问模型变量或ViewBag,可以尝试以下方式。

<script type="text/javascript">

    function set(value) {
        return value;
    }

    alert(set(@Html.Raw(Json.Encode(Model.Message)))); // Message set from controller
    alert(set(@Html.Raw(Json.Encode(ViewBag.UrMessage))));

</script>

由于

答案 2 :(得分:0)

做一件事将您的用户ID放在正常的javascript变量中,并将文档准备好的地方值放到Jquery