0

PHPページから次のスクリプトタグがあります。

 <script src='/get_items.php'></script>

理想的には.NetMVC3ビューでの対応物は何でしょうか(アクションメソッドを呼び出したいと言います)?

PS:phpスクリプトタグは(Fiddlerで観察されたように)関数呼び出しを返します。

RegisterThis( '123'、["Title"、{"1111":[" Title Text"、 ""、 "</ h2>"、 "1"、 "5"、 "0"、[]]}]) ;

RegisterThis( '234'、["Title"、{"2222":["Title Text"、 ""、 "</ h2>"、 "1"、 "0"、 "6"、[]]}]) ;

RegisterThis( '345'、["Title"、{"3333":["Title Text"、 ""、 "</ h2>"、 "1"、 "8"、 "0"、[]]}]) ;

(私はJSonスクリプトの作成について質問しているのではなく、phpページにあるようにビューにscriptタグに対応するものを含める方法について質問しています。)

4

2 に答える 2

0

ページにC#/ VBコードを追加するだけで、.aspxの<%%>タグを使用できます。値を返す単一の関数呼び出しの場合は、<%:%>を使用できます。これにより、結果もHTMLエンコードされます。詳細については、このページを確認してください:http ://www.asp.net/mvc/tutorials/older-versions/views/asp-net-mvc-views-overview-cs 。

アクションを具体的に読み込むには、HTMLヘルパーメソッド@Html.Actionを使用します。詳細については、このページを確認してください:http: //buildstarted.com/2010/09/29/htmlhelper-guide-for-mvc-3-part-2/

于 2012-07-08T03:44:54.983 に答える
0

Url.Actionヘルパーを使用できます。たとえば、Razorビューでは次のようになります。

<script type="text/javascript" src="@Url.Action("GetItems", "Home")"></script>

そしてもちろん、それに対するGetItemsアクションHomeControllerが呼び出され、有効なjavascriptを返す必要があります。

public ActionResult GetItems()
{
    return JavaScript("the script you want to return");
}

表示したスクリプトサンプルはJSONPに似ているため(コールバックに2つの引数を渡し、コールバックを複数回呼び出しているため、正確にはJSONPではありません)、カスタムを作成できますJsonpResult

public class JsonpResult : JsonResult
{
    public JsonpResult(object data)
    {
        Data = data;
        JsonRequestBehavior = JsonRequestBehavior.AllowGet;
    }

    public override void ExecuteResult(ControllerContext context)
    {
        var response = context.HttpContext.Response;
        response.Write("RegisterThis(");
        base.ExecuteResult(context);
        response.Write(")");
    }
}

次に、コントローラーアクションでこのカスタムJsonpResultクラスのインスタンスを返し、JSONにシリアル化してコールバックjavascript関数に引数として渡すビューモデルを渡します。

于 2012-07-08T06:15:57.890 に答える