Asp.net 与PHP脚本标记对应的.net MVC3
我在一个PHP页面上有以下脚本标记:Asp.net 与PHP脚本标记对应的.net MVC3,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,我在一个PHP页面上有以下脚本标记: <script src='/get_items.php'></script> 在.Net MVC3视图中,理想情况下它的对应项是什么(比如我想调用一个动作方法)? PS:php脚本标记返回函数调用(通过Fiddler观察到),即: 注册表项此('123'、[“Title”、{“1111”:[“Title Text”、“”、“”、“1”、“5”、“0”、[]}]) 寄存器此('234',[“Title”,{“2222”:[“Ti
<script src='/get_items.php'></script>
在.Net MVC3视图中,理想情况下它的对应项是什么(比如我想调用一个动作方法)?
PS:php脚本标记返回函数调用(通过Fiddler观察到),即:
注册表项此('123'、[“Title”、{“1111”:[“Title Text”、“”、“”、“1”、“5”、“0”、[]}])
寄存器此('234',[“Title”,{“2222”:[“Title Text”,“”,“”,,“1”,“0”,“6”,[])
注册表项此('345',[“Title”,{“3333”:[“Title Text”,“”,“”,,“1”,“8”,“0”,[])
(我不是问如何创建JSon脚本,只是问如何在视图中与php页面中的脚本标记对应。)要在页面中添加C#/VB代码,可以使用.aspx中的标记。如果是返回值的单个函数调用,则可以使用它甚至对结果进行HTML编码。请使用以下详细信息查看此页面:
要专门加载操作,请使用HTML Helper方法@HTML.action。查看此页面了解更多信息:。您可以使用
Url.Action
帮助程序。例如,在Razor视图中:
<script type="text/javascript" src="@Url.Action("GetItems", "Home")"></script>
而且,由于您显示的脚本示例类似于JSONP(它不完全是JSONP,因为您向回调传递了2个参数,并且多次调用回调),因此您可以编写一个自定义的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函数。Darin Dimitrov-您就是那个人!!!!!不仅在视图端您的答案是正确的,而且您在ActionMethod上返回JavaScript时添加的代码片段使我的返回(通过Fiddler)与我想要复制的PHP页面完全相同。再次感谢!!
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(")");
}
}