这是代码,当“静止”:为什么我的“替换参数”变成空字符串?
var report_parms = {
GUID: "@Model.GUID",
SerialNumber: "@Model.SerialNumber",
ReportName: "@Model.ReportName"
};
这是它看起来像在运行时,通过jQuery的步进时:
var report_parms = {
GUID: "",
SerialNumber: "",
ReportName: ""
};
...这是异常我得到,因为这些字符串是空的:
System.NullReferenceException未处理的用户代码 消息=对象引用未设置为对象的实例。 堆栈跟踪: 在TLDReporter_SL.App.Application_Startup(对象发件人,StartupEventArgs E) 在MS.Internal.CoreInvokeHandler.InvokeEventHandler(UInt32的typeIndex,代表handlerDelegate,对象发件人,对象参数) 在MS.Internal.JoltHelper.FireEvent(IntPtr的unmanagedObj,IntPtr的unmanagedObjArgs,的Int32 argsTypeIndex,的Int32 actualArgsTypeIndex,字符串eventName的,UInt32的标志)
...在这个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;
}
}
所以我的问题是(这是遗留代码我想grok):什么是“@ Model.Bla”的东西应该做的?有人熟悉这种“魔术”吗?这似乎很奇怪,我认为:
0)单词“模型”是大写(“模型”),而在上述剃刀语法参考的模式是不是:
@model TLDReporter.Models.TLDSalesReceiptCriteriaModel
而且!:
1)这些“替换参数”用引号括起来。
这是什么东西完全“家庭[成长,纺]”,我将不得不解开自己,或者是这样的事情已知的数量?
啊,这是有道理的;我一直在模型/控制器代码中进行研究,这些代码中有很多东西放在那里然后放弃(死代码),所以也许我无意中将一些仍在呼吸的代码隐藏起来。 –
即使在我有的最旧版本的TLDSalesReceiptCriteriaModel中,也没有GUID,SerialNumber或ReportName的声明;他们只是在控制器... –
@ClayShannon现在很奇怪,因为视图很明显似乎假设他们是模型的属性...那么他们在控制器中的角色是什么? – McGarnagle