这是“休息”时的代码:
var report_parms = {
GUID: "@Model.GUID",
SerialNumber: "@Model.SerialNumber",
ReportName: "@Model.ReportName"
};
这是在运行时单步执行 jQuery 时的样子:
var report_parms = {
GUID: "",
SerialNumber: "",
ReportName: ""
};
...这是我得到的例外,因为这些字符串是空的:
System.NullReferenceException 未被用户代码处理 Message=Object 引用未设置为对象的实例。StackTrace:在 TLDReporter_SL.App.Application_Startup(Object sender, StartupEventArgs e) 在 MS.Internal.CoreInvokeHandler.InvokeEventHandler(UInt32 typeIndex, Delegate handlerDelegate, Object sender, Object args) 在 MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs , Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags)
...在这个 C# 方法中:
private void Application_Startup(object sender, StartupEventArgs e)
{
ScriptObject Parms = (ScriptObject)HtmlPage.Window.Invoke("get_report_parms");
string ReportName = Parms.GetProperty("ReportName").ToString(); <--- This is the line that blows up
switch (ReportName)
{
default:
this.RootVisual = new ReceiptRpt();
break;
}
}
所以我的问题是(这是我试图理解的遗留代码):“@Model.Bla”的东西应该做什么?有人熟悉这种“魔法”吗?我觉得很奇怪:
0)“模型”一词大写(“模型”),而上面 Razor 语法中引用的模型不是:
@model TLDReporter.Models.TLDSalesReceiptCriteriaModel
和!:
1)那些“替换参数”用引号括起来。
这是我必须解开自己的完全“家庭[成长,纺]”的东西,还是这种东西是已知数量的东西?