.net MVC3对应PHP脚本标记

时间:2012-07-08 03:32:36

标签: asp.net asp.net-mvc-3

我在PHP页面中有以下脚本标记:

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

理想的.Net MVC3视图中的对应物(假设我想称之为动作方法)?

PS:php脚本标签返回函数调用(通过Fiddler观察),即:

RegisterThis('123',[“Title”,{“1111”:[“Title Text”,“”,“&lt; / h2&gt;”,“1”,“5”,“0”,[] ]}]);

RegisterThis('234',[“Title”,{“2222”:[“Title Text”,“”,“&lt; / h2&gt;”,“1”,“0”,“6”,[] ]}]);

RegisterThis('345',[“Title”,{“3333”:[“Title Text”,“”,“&lt; / h2&gt;”,“1”,“8”,“0”,[] ]}]);

(我不是要求创建一个JSon脚本,只是如何在视图中使用与php页面中的脚本标记相对应。)

2 个答案:

答案 0 :(得分:0)

要将C#/ VB代码添加到页面,您可以使用&lt; %%&gt;你的.aspx中的标签。如果是返回值的单个函数调用,则可以使用&lt;%:%&gt;甚至HTML会对结果进行编码。查看此页面以获取更多信息:http://www.asp.net/mvc/tutorials/older-versions/views/asp-net-mvc-views-overview-cs

要专门加载操作,请使用HTML Helper方法@ Html.Action。有关详细信息,请查看此页面:http://buildstarted.com/2010/09/29/htmlhelper-guide-for-mvc-3-part-2/

答案 1 :(得分: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(它不完全是JSONP,因为您将2个参数传递给回调并且您多次调用回调),您可以编写自定义JsonpResult:< / p>

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函数。