C# と linq を含むビューがあります (理想的ではありませんが、それを使用する必要があります!):
protected void Page_Load(object sender, EventArgs e)
{
.
.
var qry = (from p in db.EntityObject
where something == something_else
select new
{
<fields>
}).FirstOrDefault();
.
.
}
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
.
.
ビューの linq ステートメントを介して取得した値をコントローラーに渡す必要があります。私はこれを試しました:
var qry = (from <entity objects>
select new
{
id,
// fields
}).FirstOrDefault();
RouteData.Values.Add("id", qry.id);
次に、非表示の入力タイプに値として渡そうとしました:
<input type="hidden" value="<%Int32.Parse(RouteData.Values["id"].ToString())"/>
しかし、Chrome のツールを使用して入力要素を表示すると、「値」が空になります。ビューでlinqから取得したフィールドを、コントローラーの対応するアクションに渡す方法がわかりません。
私のビューはエンティティ フレームワークのテーブルに基づいて厳密に型指定されており、ビューからコントローラーに渡したい 'id' がそのテーブルにありません。必要な場合を除き、1 つの追加フィールドのためだけにモデルを作成したくありません。
これどうやってするの?