3

私はasp.netmv3アプリケーションに取り組んでいます。

ヘルパークラスには、IDに基づいて人のオブジェクトを返すメソッドがあります

public Person GetPersonByID(string id)
{
    // I get the person from a list with the given ID and return it
}

ビューでは、を呼び出すことができるjqueryまたはjavascript関数を作成する必要がありますGetPersonByID

function getPerson(id) {
    //I need to get the person object by calling the GetPersonByID from the C# 
    //helper class and put the values Person.FirstName and Person.LastName in 
    //Textboxes on my page
}

どうやってやるの?

これは、ajax呼び出しを使用して実行できますか?

    $.ajax({
            type:
            url:
            success:
            }
        });

どんな助けでも大歓迎です

ありがとう

4

2 に答える 2

12

そのことについてのJavascriptまたはjQueryは、意味を知りませんmethod。jQueryはC#が何であるかを知りません。jQueryはASP.NETMVCが何であるかを知りません。jQueryはPerson.NETクラスの意味を知りません。jQueryは.NETクラスの意味を知りません。

jQueryはjavascriptフレームワークであり、(他の多くのものの中でも)AJAXリクエストをサーバー側スクリプトに送信するために使用できます。

ASP.NET MVCでは、これらのサーバー側スクリプトはコントローラーアクションと呼ばれます。Javaでは、これらはサーブレットと呼ばれます。PHPの場合-PHPスクリプト。等々...

Personしたがって、AJAXを使用してクエリでき、クラスのJSONシリアル化インスタンスを返すコントローラーアクションを記述できます。

public ActionResult Foo(string id)
{
    var person = Something.GetPersonByID(id);
    return Json(person, JsonRequestBehavior.AllowGet);
}

その後:

function getPerson(id) {
    $.ajax({
        url: '@Url.Action("Foo", "SomeController")',
        type: 'GET',
        // we set cache: false because GET requests are often cached by browsers
        // IE is particularly aggressive in that respect
        cache: false,
        data: { id: id },
        success: function(person) {
            $('#FirstName').val(person.FirstName);
            $('#LastName').val(person.LastName);
        }
    });
}

これは明らかに、Personクラスに次FirstNameLastNameプロパティがあることを前提としています。

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
于 2012-04-13T17:16:35.833 に答える
1

できますよ!サーバー側のコード、特にコントローラーで行う必要があるのは、次のように、JSONオブジェクトとしてシリアル化されたPersonを返すことだけです。

[HttpPost] public ActionResult GetPersonByID(string id){return Json(person); }

次に、AJAXで、

        $.ajax({
            type: "POST",
            url: form.attr('action'),
            data: form.serialize(),
            error: function (xhr, status, error) {
                //...
            },
            success: function (result) {
                // result.FirstName
            }
        });
于 2012-04-13T17:20:59.107 に答える