-1

私が達成しようとしているタスクは、基本的に AJAX を使用して MVC ビューを呼び出し、ビューのコンテンツをメイン コンテンツ div にレンダリングすることです。ページ全体をリロードするのではなく、必要なコンテンツを更新するだけなので、呼び出しようとしているコントローラーとアクションを考慮して URL 文字列を変更し、必要な見る。私はジュニア開発者にすぎないので、まだ多くの Ajax を行ったことはありませんが、このようなことやそれに続くことを達成する方法を学ぶことに非常に興味があります。

私は主な言語として C# を使用しており、mvc3 または mvc4 のいずれかを使用できますが、それが大きな違いを生むかどうかはわかりません。

4

3 に答える 3

2

これには Ajax.ActionLink を使用できます...

@Ajax.ActionLink("Click here", "OtherAction", null, new AjaxOptions() { UpdateTargetId = "MyDiv" })

<div id="MyDiv">

</div>

アクション

Public ActionResult OtherAction(long id)
{
    return View();
}

意見

@{
    ViewBag.Title = "Hello!";
    Layout = Request.IsAjaxRequest() ? null : "~/Views/Shared/_Layout.cshtml";
}

<h1>Hello!</h1>
于 2013-01-17T13:38:34.497 に答える
1

ボタン: @supplierQuoteId は、Razor を介してモデルから取得されます。

<a id="@supplierQuoteId" class="t-button" style="float: right; margin: 3px; padding: 2px; line-height: 0;" 
    onclick="ajaxEditSupplierQuote(this.id)">
    <span class="t-icon t-edit">Edit</span>
</a>  

JavaScript: $.ajax が完了したら、Telerik ウィンドウを開くと、id="supplierquote-dialog-contet" を持つ .Content - div があり、コントローラーから返された PartialView で埋められます。 html(" ") . 空の。

<script type="text/javascript">        
    function ajaxEditSupplierQuote(id) {
        var strUrl = "/SupplierQuote/Edit" + "/" + id.toString();
        $.ajax({
            type: "GET",
            url: strUrl,
            dataType: "html",
            success: function (data) {
                if (!data) {
                    $('#supplierquote-dialog-content').html(" "); // error check
                }
                else {
                    $('#supplierquote-dialog-content').html(data);
                }
            },
            complete: function () {
                var window = $("#SupplierQuoteDialog").data("tWindow");
                window.center().open();
            }
        });
    }
</script>

サプライヤー見積コントローラー:

    [HttpGet]
    public ActionResult Edit(Guid id)
    {
        SupplierQuoteEntity supplierQuote = _supplierQuoteRepository.GetById(id);
        return PartialView("Edit", supplierQuote);
    }
于 2013-01-17T13:14:01.647 に答える
0

あなたと非常によく似たこの質問をチェックしてください。

ASP.NETMVC-PartialViewを別のオブジェクトと一緒にAjaxに返す

そこからコードを盗むと、次のようなことができます。

public ActionResult GetSomePartialView(SomeArgumentModel someArguments)
{
    ReturnArgs r = new ReturnArgs();

    r.ViewString = this.RenderViewToString("SomeView");

    return Json(r);
}

public class ReturnArgs
{
    public ReturnArgs()
    {
    }

    public string ViewString { get; set; }
}

次に、ビューで:

$.ajax({
    type: "GET",
    url: "/Home/GetSomePartialView/",
    data: someArguments,
    success: function (jsReturnArgs) { 

    $("#someDiv").html(jsReturnArgs.ViewString); //the HTML I returned from the controller
    },
    error: function (errorData) { onError(errorData); }
});
于 2013-01-17T13:16:20.290 に答える