ASP.NET MVC从视图模型

时间:2016-05-07 02:01:04

标签: c# asp.net asp.net-mvc

假设我有一个包含以下字段的视图模型:

UserId, FirstName, LastName, City, State, Zip

当页面加载时,它会显示一个用户表,但只显示FirstName,LastName和“Details”按钮。如果单击该按钮,则会显示一个弹出窗口,其中显示视图模型中的所有字段。

我不确定如何做到这一点。如果我将按钮绑定到 UserId ,我是否可以在视图模型中找到要在弹出窗口中显示的特定记录?或者我需要POST到控制器?

使用代码更新

我在下面发布了相关的代码段。当我单击Details链接时,我希望用户详细信息显示在部分视图中创建的bootstrap弹出模式窗口中。但它正在打开一个新的浏览器窗口并只显示一个JSON字符串?

从主视图

<td><a href="@Url.Action("AdminGetUserDetails", "Admin", new { Id = user.Id })"> Details</a></td>

控制器

public ActionResult AdminGetUserDetails(string Id)
    {
        AdminUserDetails userDetails = new AdminUserDetails();
        userDetails = _adminRepository.AdminGetUserDetails(Id);

        return Json(userDetails, JsonRequestBehavior.AllowGet);
    }

的jQuery

function getAdminUserDetails(userId) {
$.ajax({
    url: '@Url.Action("AdminGetUserDetails", "Admin")',
    type: 'GET',
    dataType: 'json',
    cache: false,
    data: { id: id },
    success: function (userDetails) {
        $('#UserId').val(userDetails.UserId);
        $('#UserName').val(userDetails.FirstName);
        $('#Email').val(userDetails.Email);
        $('#Avatar').val(userDetails.Avatar);
        $('#City').val(userDetails.City);
        $('#State').val(userDetails.State);
    }
});

}

0 个答案:

没有答案