4

送信フォームのあるビューがあります。クリックすると、jquery/ajax 関数が呼び出されます。この関数は、View Model をエンコードし、Controller アクションを呼び出して、返された View を表示する必要があります。さて、これは私の機能です:

<script type="text/javascript">
function Analyze() {
    var urlact = '@Url.Action("Analysis")';
    var model = '@Html.Raw(Json.Encode(Model))';
    $.ajax({
        data: model,
        type: "POST",
        url: urlact,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            //WHAT HERE??
        }
    });
}
</script>

分析アクションは一種の

public ViewResult Analysis(IEnumerable<Azienda> aziende) {
        Debug.WriteLine(aziende.Count());
        return View(aziende);
    }

ビューを返します!成功時にそのビューを表示するにはどうすればよいですか:関数(データ)? dataType をhtmlに変更して成功アラート (data)を呼び出してみましたが、エンコードされたモデルに問題がありました。contentType 行にコメントを付けてみましたが、モデルのエンコードの問題は同じでした。

誰かがそれを行う方法を知っていますか? js/query/ajax の回避策も問題ありません。

ありがとうございます!

4

2 に答える 2

0

使用する

return PartialView()

それ以外の

return View()

あなたのコントローラーで。次に、ajax 呼び出しの success 関数で、jQuery .html() 関数を使用して、html で更新する要素を更新します。Query.html()およびView( ) と PartialView() を参照してください。

于 2013-11-22T11:06:06.090 に答える
0

aziende をモデルとして別の部分ビューを作成し、これを Analysis アクションで返し、結果をビューの div に追加します。

//action returning a partial view
public ActionResult Analysis(IEnumerable<Azienda> aziende) 
{
    Debug.WriteLine(aziende.Count());
    return PartialView("_partialView", aziende);
}

//then append the result to a div in your javascript
success: function (data) {
    $("#some-div").html(data); 
}
于 2013-12-12T11:28:10.073 に答える