簡體   English   中英

將復雜的JavaScript對象發送到ASP.Net MVC操作

[英]Send complex JavaScript object to ASP.Net MVC Action

這似乎是一個很普遍的主題,一些人給出了一些非常有建設性的答案,但是我仍在努力工作。

問題是有很多相同的這一個 ,例如,不同的是我只是試圖發送一個復雜的對象,而不是一個數組。

我的控制器如下所示:

[AcceptVerbs (HttpVerbs.Put)]
[Authorize]
[JsonFilter(Param="Designer", JsonDataType=typeof(Designer))]
public JsonResult SaveProfile(Designer Profile)
{
    ProfileRepository Repo = new ProfileRepository();

    Designer d = Repo.GetById(Profile.ID);
    d.Comments = Profile.Comments;
    d.DisplayName = Profile.DisplayName;
    d.Email = Profile.Email;
    d.FirstName = Profile.FirstName;
    d.LastName = Profile.LastName;


    Repo.Update(d);

    return Json(Profile);
}

檢索頁面數據並將其發布的代碼如下所示:

    $('#save-profile').click(function () {

        var Profile = {};
        var context = $('#profile-data')[0];

        $('span', context).each(function () {
            Profile[this.id] = $(this).text();
        });

        Profile.ID = $('h3', context).attr('id');
        console.log(Profile);

        //var DTO = { 'Profile': Profile };

        $.ajax({
            type: "PUT",
            url: "/Home/SaveProfile",
            data: { 'Profile': Profile },
            success: function (data) {
                console.log(data);
            }
        });
    });

正在正確創建對象並將其發布到服務器(順便說一句,我嘗試使用POST和PUT),服務器似乎正在接收對象實例,但屬性-通常-全部為null。

我想念什么? 我嘗試使用上面鏈接的示例問題中的方法(自適應),但似乎仍未接近解決方案。 任何幫助表示贊賞。

事實證明,ActionResult方法本身沒有錯,JavaScript對象或Ajax發布也沒有任何問題。 問題實際上出在裝飾ActionResult和為其參數值設置的參數的自定義過濾器上。

以下屬性為我要傳遞的參數的名稱設置了參數“ Designer”。我已將其同時作為參數名稱和類型提供。

[JsonFilter(Param="Designer", JsonDataType=typeof(Designer))]

正確的版本應為:

[JsonFilter(Param="Profile", JsonDataType=typeof(Designer))]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM