0

コントローラーからjsonを返す以下のajaxクエリがあります

$(document).ready(function () {
    $.getJSON(
      "api/OutletPOC/GetHomeTab?bizId=1",
      function (data) {
          $("#homeTabDesc").append(data.HomeDesc);
          $(".test").hide();
          $("#hometabcontent").show();
      });
});

コントローラーのアクションは以下のとおりです

[System.Web.Http.ActionName("GetHomeTab")]
    public HomeTabModel GetHomeTab(int bizId)
    {
        var outlet = db.Info.Where(t => t.BizId == bizId).SingleOrDefault();
        return new HomeTabModel 
        { 
            HomeDesc = outlet.BizHomeDesc, 
            HomeTabText = outlet.BizHomeTabText 
        };
    }

今私の質問は次のとおりです。現在、bizId のハードコードされた値を Web API に送信しています。この値を動的に送信したい。どうすればこれを達成できますか? ルート設定ファイルにその値があります。コードは次のとおりです-

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{bizId}",
            defaults: new { controller = "Home", action = "Index", bizId = 1 }
        );
    }

私はこれが初めてです。助けてください!前もって感謝します!

4

2 に答える 2

1

いいえ、実際には多くの調査の結果、この解決策を思いつきました。これは私にとってはうまくいきます....

コントローラーで、

public ActionResult Index(int bizId)
    {
        ViewBag.BizId = bizId;
        return View();
    }

ビューでは、

$(document).ready(function () {
    $.getJSON(
      "api/OutletPOC/GetHomeTab?bizId=@ViewBag.BizId",
      function (data) {
          $("#homeTabDesc").append(data.HomeDesc);
          $(".test").hide();
          $("#hometabcontent").show();
      });
});
于 2013-05-29T10:41:20.177 に答える
0

GetJson 呼び出しの一部としてデータ オブジェクトを渡すことができます。

$(document).ready(function () {
    $.getJSON(
      "api/OutletPOC/GetHomeTab",{bizId : 1},
      function (data) {
          $("#homeTabDesc").append(data.HomeDesc);
          $(".test").hide();
          $("#hometabcontent").show();
      });
});

これをさらに一歩進めると、これを関数でラップできます。

function makeCall(id)
{

     $.getJSON("api/OutletPOC/GetHomeTab",{bizId : id},
              function (data) {
                  $("#homeTabDesc").append(data.HomeDesc);
                  $(".test").hide();
                  $("#hometabcontent").show();
              });

}

promise の使用も検討してください。

$.getJSON().then().done();

于 2013-05-29T06:49:15.057 に答える