ASP.net MVC-如何设置模式?

时间:2018-06-19 20:20:12

标签: asp.net-mvc

我真的不确定如何在ASP.NET MVC中处理模式对话框: 情况如下:在我的主页/索引操作方法中,我检查用户是否已接受条款和条件。如果没有,我想显示一个对话框来提示用户进行确认。

现在我真的不确定如何在MVC中解决此问题: 我看到的可能性:

  1. 在ViewBag中存储TaCConfirmNeeded属性,在我看来,该Viewbag包含此令牌,显示带有表单的jquery模态对话框以确认条款和条件,并从此表单调用account / confirmTA。 / p>

  2. 在我的共享文件夹中创建一个视图,该视图使用我的常用布局,并且其样式类似于模式对话框,并带有发送到account / confirmTA的表单。

是否有更好/更容易的可能性?

1 个答案:

答案 0 :(得分:1)

这就是我在MVC中实现Modal Pop-Up的方式。希望对您有帮助。
创建局部视图(示例):

@model CodeFirst.Models.FriendsInfo  
<div>  

<div class="modal-header">  
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>  
    <h4 class="modal-title" id="myModalLabel">FriendsInfo</h4>  
</div>                 


<hr />  
<dl class="dl-horizontal">  
    <dt>  
        @Html.DisplayNameFor(model => model.Name)  
    </dt>  

    <dd>  
        @Html.DisplayFor(model => model.Name)  
    </dd>  

    <dt>  
        @Html.DisplayNameFor(model => model.Mobile)  
    </dt>  

    <dd>  
        @Html.DisplayFor(model => model.Mobile)  
    </dd>  

    <dt>  
        @Html.DisplayNameFor(model => model.Address)  
    </dt>  

    <dd>  
        @Html.DisplayFor(model => model.Address)  
    </dd>  

</dl>  

控制器看起来像:

public ActionResult Details(int Id)  
{  
    FriendsInfo frnds = new FriendsInfo();  
    frnds = db.FriendsInfo.Find(Id);  
    return PartialView("_Details",frnds);  
}   

稍后将其放在您的_Layout上:

<div id='myModal' class='modal'>  
    <div class="modal-dialog">  
        <div class="modal-content">  
            <div id='myModalContent'></div>  
        </div>  
    </div>   
</div>   

您将需要一个带有少量jQuery的脚本来从您的角度使用AJAX进行调用:

<script>  
var PostBackURL = '/Home/Details';  
$(function () {  
    // Use your logic, to call this function and replace the parameters like the User.ID
        debugger;  
        var id = User.Id;
        var options = { "backdrop": "static", keyboard: true };  
        $.ajax({  
            type: "GET",  
            url: PostBackURL ,  
            contentType: "application/json; charset=utf-8",  
            data: { "Id": id },  
            datatype: "json",  
            success: function (data) {  
                debugger;  
                $('#myModalContent').html(data);  
                $('#myModal').modal(options);  
                $('#myModal').modal('show');                    

            },  
            error: function () {  
                alert("Dynamic content load failed.");  
            }  
        });  
    });  
    //$("#closebtn").on('click',function(){  
    //    $('#myModal').modal('hide');    

    $("#closbtn").click(function () {  
        $('#myModal').modal('hide');  
    });
</script>