razor语法从链接传递参数到if语句中的重置变量



如果这看起来像是一个简单的任务,请原谅我,我对这个相当陌生…

我想创建逻辑,允许用户显示或不显示他们的电子邮件地址时,从一个对话框编辑它。我将允许用户在对话框内"选择退出"的链接-我试图使用该链接将"if"语句内的变量重置为"假"。"if"语句阻止电子邮件地址被渲染。

下面是我的if语句:
<div id="change-email" class="text"> 
    @{
        var showEmail = true;
        if (showEmail == true)
        {
            <text><p><span class="label">My email address: </span>@Model.Email</p></text>
        }
        else (showEmail == false)
        {
            <text><p>No email displayed</p></text>
        }
    }
</div><!--#change-email--> 

下面是对话框代码:

<div id="dialog-email" class="modal">
    @using (Html.BeginForm("ChangeEmail", "Account", FormMethod.Post))
    {
        <fieldset>
           // form code here
        </fieldset>
    }
    <p><a href="" class="no-display">Do not display my email address.</a></p>
</div>

如有任何帮助,我将不胜感激。

谢谢!

如果您使用jQuery这样做,并且您认为电子邮件地址在页面源中仍然可用,则它看起来像这样:

<div id="change-email" class="text"> 
    <p><span class="label">My email address: </span>@Model.Email</p>
</div>
<div id="dialog-email" class="modal">
    @using (Html.BeginForm("ChangeEmail", "Account", FormMethod.Post))
    {
        <fieldset>
           // form code here
        </fieldset>
    }
    <p><a href="" class="no-display">Do not display my email address.</a></p>
</div>
<script type="text/javascript">
$(document).ready(function(){
    $('a.no-display').click(function(){
         $('#change-email p').text('No email displayed.');
    });
});
</script>

如果您想保留不显示电子邮件的首选项,则会更复杂一些。您可能希望在ChangeEmail表单中添加"不要显示我的电子邮件地址"作为复选框,调整表单发送的控制器动作以处理首选项,并将其作为变量返回到该动作返回的视图的ViewBag中。

最新更新