1

サイトのページにカスケード ドロップダウン リストを追加しようとしています。http://www.mikesdotnetting.com/article/196/webmatrix-jquery-cascading-dropdown-listsに示されている例に従いました。唯一の変更点は、アプリに合わせて変数名を変更したことです。特定の状況 (つまり、新しいレコードの作成) でのみ機能が存在するようにしたいのですが、関連するコードの周りに if ステートメントがあります。

ページの読み込み時に 2 番目のドロップダウン リストが無効になっていますが (予想どおり)、最初のドロップダウン リスト項目の 1 つが選択されても有効になりません。

私の疑いは、おそらく次の行が原因で、GetClients.cshtml (Mike の GetProducts.cshtml の私のバリエーション) を正しく呼び出していないことです。

$.getJSON('/GetClients/' + ActivityID, function (clients) {

正しいフォルダを探していません。

理想的な世界では、Razor のチルダ (~) を使用して、サーバーのバージョンやローカルホストの使用に関係なく、正しく見えるフル パスを強制することができます。しかし、それは JavaScript のオプションではないようです。

GetClients.cshtml は、制御しようとしている JS コード、HTML ドロップダウン リストなどを含む cshtml ファイルと同じフォルダーにあります。上記のコードが「隣の」ファイルを参照しているかどうかを誰かに教えてもらえますか?そうでない場合は、上記のコード行を何に修正すればよいですか?

4

3 に答える 3

1

ビューを Javascript から直接呼び出すことはできません。そのため、そのビューを返す ASP.NET MVC コントローラーでアクションを作成するだけです。

public MyController{
   public ActionResult GetMyCoolCshtmlFile(){
      return View("pathToMyCoolCshtml.cshtml");
   }
}

そしてそれをJSで呼び出します:

 $.get("/my/GetMyCoolCshtmlFile").done(function(yourMarkup){doWhatYouWantWithYourMarkup(yourMarkup);})
于 2016-04-11T17:07:56.207 に答える
0

GetClients.cshtml ファイルがルートの下のフォルダーにある場合は、getJSON メソッドに渡す URL にそのフォルダーを含める必要があります。たとえば、構造が次のようになっているとします。

root
    folder
        GetClients.cshtml
        CallingPage.cshtml
    Default.cshtml
    etc

getJSON メソッドに渡す URL には、渡し/folder/getclientsたい追加の URLData/クエリ文字列を加えたものにする必要があります。

于 2016-04-11T20:38:27.407 に答える