如何在mvc中显示实体细节

时间:2017-05-09 12:00:33

标签: jquery asp.net-mvc razor

我尝试制作当我点击按钮时,弹出窗口将打开并显示更多数据,但我有一个错误。我没有访问服务器端我的意思是当我把断点放在c#代码(公共JsonResult PersonalDetail(int personalId)),程序不去那里它显示注意  请帮帮我:)。

    <div class="modal fade" id="personalDetailModel">
    <div class="modal-dialog">
    @if(Model != null) { 
                    <ul>
                        <li>
                            <b>Personal Name :</b>@Model.PName
                        </li>
                        <li>
                            <b>Personal Lastname :</b>@Model.PLastname
                        </li>
                        <li>
                            <b>Personal Email :</b> @Model.Email
                        </li>
                        <li>
                            <b>Personal Phone :</b>@Model.Phone
                        </li>
                    </ul>
                  }
</div>
</div>

这是我的模型,我想在此弹出窗口中显示个人详细信息

<a href="#" class="btn btn-info"  onclick="ShowDetail(@item.PersonalID)" data-toggle="modal" data-target="#personalDetailModel"><i class="glyphicon glyphicon-info-sign" ></i></a>

我使用此按钮访问弹出窗口并输入脚本

var ShowDetail = function (PersoID) {
        var prsnID = $("#personalDetailModel").val();
        $.ajax({
            type: "POST",
            url: "/Personal/PersonalDetail",
            data: { PersoID: prsnID },
            success: function () {

            }
        })
    }

这是脚本。所以我想从PersonalID中获取更多细节,我会在弹出窗口中显示它

        [HttpPost]
        public JsonResult PersonalDetail(int personalId)
        {

            StorageSystemEntities2 db = new StorageSystemEntities2();


            Personal personal = db.Personal.SingleOrDefault(x => x.PersonalID == personalId);
            PersonalViewModel personalVM = new PersonalViewModel();

            personalVM.PName = personal.PName;
            personalVM.PLastname = personal.PLastname;
            personalVM.PAuthorisation = personal.PAuthorisation;
            personalVM.JobStartDate = personal.JobStartDate;
            personalVM.DOB = personal.DOB;
            personalVM.Email = personal.Email;
            personalVM.Phone = personal.Phone;
            personalVM.ShopName = personal.Shop.SName;
            personalVM.GenderType = personal.Gender.GenderN;
            personalVM.PStatus = personal.PStatus;

            return Json(personalVM, JsonRequestBehavior.AllowGet);
        }

1 个答案:

答案 0 :(得分:0)

这是因为前端的方法与后端的方法不匹配。您需要做的是匹配参数名称。像

data: { personalId: prsnID },

public JsonResult PersonalDetail(string personalId)

此外,您需要将参数类型设置为字符串,因为它默认情况下不会将您的类型转换为int,因此请将其更改为服务器端参数中的字符串并将其强制转换为方法。