0

Web サービス プロバイダーを呼び出す asp.net mvc 4 Web アプリケーションを構築しています。次に、Java スクリプトを使用して Web サービス呼び出しから返された json の結果を表示しています。たとえば、コントローラーレベルでは、次のアクションメソッドがあります:-

public ActionResult ListPackages()
        {            using (var client = new WebClient())
            {                try
                {
                    var query = HttpUtility.ParseQueryString(string.Empty);
                    var url = new UriBuilder("http://localhost:8080/jw/web/json/workflow/package/list");
                    url.Query = query.ToString();
                    string json = client.DownloadString(url.ToString());
                    Thread.Sleep(500);
                    return Content(json, "application/json");
                }
                catch (System.Net.WebException) {

                   return Content("error", "application/json");

                }           }        }

次に、ビューに JSON を表示するために Java スクリプトを使用しています:-

function getpackagelist(result) {
        $('#products').empty();
        $('#title').text("All Processes");
        $.each(result.data, function (key, val) {
            var str = val.packageName;
            $('<li/>', { text: str })
                .appendTo($('#products'));
        });
        $('#tobehide').hide();

最後に、ビューには、上記のアクション メソッドと Java スクリプトを呼び出す次のコードがあります。

@{
    ViewBag.Title = "Home Page";
}
@Ajax.ActionLink("Get Process List", "ListPackages", "Home",
new AjaxOptions
    {    HttpMethod = "GET",
        LoadingElementId = "tobehide",
        OnBegin = "clear",

        OnFailure = "clear",
        OnSuccess = "getpackagelist"
    })
<div id= "geturl" data-url="@Url.Action("ListPackages", "Home")">
    <img class="hide" id="tobehide" src="~/Content/ajax-loading2.gif" />
<h1 id ="title"></h1>

<ul id="products">

</ul>
</div>

上記はうまくいっていますが、javascriptを使ってスタッフ全員を行うのは難しいと思うので、javascriptを使用する代わりにJSONをモデルとして強く型付けされたビューに渡すことを考えていますが、次の質問があります:-

  1. これら 2 つのアプローチの長所と短所は何ですか (javaScript を使用するか、JSON を厳密に型指定されたビューに渡すか)。

  2. JSON をモデルとして厳密に型指定されたビューに渡す方法。

  3. どのアプローチに従うべきですか??

助けてくれてありがとう。

よろしくお願いします

4

1 に答える 1

1

1.) 厳密に型指定されたビューを使用するメリットは、SEO で機能することです。スパイダーは JavaScript を実行できません。ページで「ソースを表示」したときに表示されるものはすべて表示されます。JavaScript を使用する利点は、ページの読み込みが「速く見える」ことです。「体感パフォーマンス」が向上する可能性があります。

2.) これを行うことができます:

// in controller action
...
string json = client.DownloadString(url.ToString());
dynamic asDynamic = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(json);
return View(asDynamic);

@* in view *@
@model dynamic
Here is a value: @Model.SomePropertyOnYourJsonObject

3.)場合によります。あなたの状況に最も適した決定を説明するのに十分な情報が提供されていないと思います.

于 2012-10-30T16:45:33.293 に答える