1

私はASPに少し慣れていません。ajax呼び出しをしたいのですが、送信先のURLがわかりません。アプリケーションへの実際のURLは一体何ですか?もちろん、ブラウザではhttp:// localhost:someport /(リンクがSOの質問に違反しているため、スペースが追加されています)として表示されます。その後、["index"、 "default"]。["asp"、 "aspx"、 "htm"、 "html"、 "asm"、 "asmx"]と入力しようとすると、エラーが発生します。

関連するJavaScriptの部分は次のようになります。

$.ajax({
   "url": "Default.aspx/ProcessReq",

そして、私のコントローラーの関連するC#コードは次のようになります。

[WebMethod]
public object ProcessReq(string s) {

設定ファイルに以下を追加しました:

<configuration>
   <system.web>
      <webServices>
        <protocols>
           <add name="HttpGet"/>
           <add name="HttpPost"/>
         </protocols>
      </webServices>
   </system.web>
</configuration>

私は完全に間違ったことをしていると確信しています。ASPは私にとってかなり新しいことをもう一度強調します。何か案は?

4

1 に答える 1

1

Web フォームがまだ頭に残っている状態で MVC を使用しているようです。それはよくあることです。

残念ながら、MVC は WebForms とは大きく異なります。ビュー (aspx または razor) を直接呼び出すことはありません。Action Method: /home/index ... と呼びます。default.aspx は省略できます。それを試してみてください。

ActionResult は、コントローラー アクションによって返される応答タイプの基本クラスです。

public ActionResult ProcessReq()
{
    return View(model)
}

またはあなたのProcessReqはJsonタイプにすることができます

public ActionResult ProcessReq()
{
    Json(new { page= "<HTML></HTML>", control= "<input type='text' id='control'>" });
}

アクションの結果は、ビュー、PartialView、および JSON を返すことができます (他の多くの可能性の中でも)。この場合、設計の実装要件に応じて、必要な応答タイプを決定する必要があります。

于 2013-03-18T01:22:37.780 に答える