MVC3 razor语法将一个参数从一个链接传递给if语句中的reset变量

时间:2011-10-07 18:00:46

标签: asp.net-mvc variables razor

请原谅我,如果这看起来像一个简单的任务,我对此很新...

我想创建一个逻辑,允许用户在从对话框中编辑时显示或不显示他们的电子邮件地址。我将放置允许用户在对话框中“选择退出”的链接 - 我正在尝试使用该链接将'if'语句中的变量重置为'false''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>

任何帮助将不胜感激......

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您使用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 表单中添加“不显示我的电子邮件地址”作为复选框,调整表单发布的控制器操作以处理首选项,并将其作为Action返回的View的ViewBag中的变量。