値、C#MVCレイザー - コントローラ隠し得ていない入力は、私は私のフォームビューで非表示の入力フィールドに、次の定義されている
フォーム:
@model Mysite.Models.FileUpload
@using Mysite.Models
@{
var FileUploadData = ViewData["FileUploadData"] as FileUpload;
}
@using (Html.BeginForm("LoadData",
"LoadAndAnalyzeData",
FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
<div class="div-root" id="serverslist">
@Html.LabelFor(m => m.SelectedServer)
@Html.DropDownListFor(m =>m.SelectedServer, FileUploadData.ServersList)
</div>
<div class="div-root">
<label for="files">Choose File 1: </label>
<input type="file" name="file1" id="file1" />
</div>
<div class="div-root">
<input type="submit" id="upload" name ="FileUpload" value="Upload Files For Analysis" />
</div>
}
@using (Html.BeginForm("AnalyzeLoadedData", "LoadAndAnalyzeData"))
{
<input type="hidden" name="servername" id="servername" value='@ViewBag.servername' />
@ViewBag.servername
<input type="submit" id="analysis" name ="AnalyzeLoadedData" value="Analyze Loaded Data" />
}
私は私のモデルを持っています以下のように「サーバ名」を定義している。
public string servername { get; set; }
私が機能をサブミットすると、AnalyzeLoadedData
は期待どおりにサーバー名を取得していません。しかし、ページにはの一部としてサーバー名が表示されています。
を「名前をServerNameの 『サーバー名』は、現在のコンテキスト内に存在しない」私はここに欠けているものを私を導いてください。
ひげコードを掲示すると物事を明確にするのに役立ちますが、サーバー名をモデル、なぜあなたはViewBagを使用していますか? ViewBagの項目はモデルにバインドされていません。 @ Html.HiddenFor(x => x.servername) –
私はこのウェブページに2つのフォームを持っています。 @ViewBagは、アクションの1つに作成され、別のアクションへの入力として渡されます。 – sqlcheckpoint
これはおそらくそれとは関係ありませんが、フォーム名と送信ボタンの両方に同じ「名前」(AnalyzeLoadedData)を再使用しないようにする必要があります。 –