MVC4 アプリケーションがあります。データベースの応答を取得している間、その応答から特定の値を静的変数 (「名前空間 A」で宣言されている) に割り当てています。名前空間 B で正常に発生するように設定します。ただし、XAML.cs (名前空間 C など) でその値を取得しようとすると、常に 0 が返されます
。3 つすべてがサーバー上の同じアプリ プールで実行されています。
コントローラーはいつでも値をビューに、そこから Silverlight に渡すことができることを理解しています。これは単一の値 (「long」型) であるため、値がコントローラー レベルで設定され、XAML.cs で読み取られるグローバル変数のような方法があるかどうかを調べたいと思います。
私のCSHTMLコード:
<object id="slvObject" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="800px">
@{
string sourceValue = @"/../../*.xap";
string xappath = HttpContext.Current.Server.MapPath(@"") + @"\" + sourceValue;
DateTime xapCreationDate = System.IO.File.GetLastWriteTime(xappath);
sourceValue = sourceValue + "?ignore=" + xapCreationDate.ToString();
}
<param name="source" value="~/../../*.xap" />
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="windowless" value="true"/>
<param name="minRuntimeVersion" value="5.0.60818.0" />
<param name="initParams" value="@DataKeyNameConstants.val1=@val1,@DataKeyNameConstants.val2=@val2"/>
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=5.0.60818.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
Mainpage.xaml.cs コンストラクターが呼び出されたところから app.xaml.cs があります。コンストラクターから、呼び出し method1() があります
XAML.cs:
private void method1()
{
string str = GetApplicationAbsoluteURL() + "/MyController/GetValue?val1=" + _val1.ToString() + "&val2=" + _val2.ToString();
MyHelper.ReadDataAsynchronously(str, CompleteTask);
}
コントローラ
public string GetValue(int val1, int val2)
{
GetValueResponse _valueResponse = _serviceClient.GetValue(val1, val2);
//In this _valueResponse, I get a value Id "_valueResponse.Id" which is of long type. I would like that value to be sent to XAML.cs (May be if it can be stored in a global variable and used there)
return _valueResponse.XMLValue;
}
次に、コントロールは XAML.cs ファイルのCompleteTaskメソッドに渡されます。
private void CompleteTask(object sender, OpenReadCompletedEventArgs e)
{
//Here is where I would like to read the value and it comes "0" all the time
}
また、もう一つお聞きしたいことがあります。何らかの手段でこれを達成できた場合、この値は long 変数の割り当てごとに常に更新されるでしょうか? (つまり、私の質問の理由は、.xap ファイルが事前にコンパイルされているため、値を一度記録して常に使用したくないということです。ページを呼び出すたびにこれを再ロードしたいです。値が異なる可能性があるため)。
あなたの助けに感謝!