這是代碼,當「靜止」:爲什麼我的「替換參數」變成空字符串?
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