基于Session(UserType),在ASP.NET MVC页面上显示特定div

时间:2010-01-28 21:35:30

标签: asp.net-mvc

我有一个包含两个DIV标记的视图页面。 If the session[UserType] = ‘Guest’,然后我需要显示Guest DIV部分。

Else
If session[userType] = ‘Logged’

,然后我不需要显示Guest DIV Section。

<div id="Logged" >
    <div class="txtContent">
        <label for="product" class="Form_Label">product:<em>*</em></label> 
        <%= Html.DropDownList("product", " -- Select one -- ")%>
    </div>
</div>

<div id="Guest">
    <label for="DeliveryMethod">Delivery Method: </label>
    <select name="DeliveryMethod" id="Select1" style="width: 100px">
        <option value="email">Email</option>
        <option value="fax">Fax</option>
        <option value="mail">Mail</option>
    </select>
</div>

感谢您的回复。

由于

1 个答案:

答案 0 :(得分:1)

听起来你可以使用jQuery或partialView。

我的口味是根据决策点显示部分视图。

请记住,您的页面中不应包含任何逻辑,因此您可能需要编写帮助程序来为您做出决定。

作为替代方案,您可以渲染页面,然后调用jQuery方法,该方法将根据您发送的参数返回部分视图。

如果您需要代码,请添加评论,我会发布一些。

修改

@Rita,如果您很高兴在页面上显示HTML并且您只想隐藏/显示div,那么这里是代码;

<input type="hidden" id="hdnSessionValue" value="<%=session[UserType]">

<div id="Guest">
    <label for="DeliveryMethod">Delivery Method: </label>
    <select name="DeliveryMethod" id="Select1" style="width: 100px">
        <option value="email">Email</option>
        <option value="fax">Fax</option>
        <option value="mail">Mail</option>
    </select>
</div>

然后你有以下jQuery;

<script language="javascript">
  $(document).ready( function () {
    if ( $('#hdnSessionValue').val() == "Guest")
      $('#Guest').show();
    else
      $('#Guest').hide();
  } );
</script>

<强> EDIT2

根据您必须隐藏/显示的HTML数量,我认为不需要jQuery回发。