コントローラーから非表示フィールドの値を設定したいのですが、どうすればよいですか?
ビュー部分では、私はこのように与えました。
<div>
@Html.Hidden("hdnFlag", null, new { @id = "hdnFlag" })
</div>
尊敬される地域のコードを見つけてください。
コントローラ
ViewBag.hdnFlag= Session["hdnFlag"];
表示する
<input type="hidden" value="@ViewBag.hdnFlag" id="hdnFlag" />
JavaScript
var hdnFlagVal = $("#hdnFlag").val();
ViewData/ViewBag
に対応する値を設定できます。
ViewData["hdnFlag"] = "some value";
しかし、はるかに優れたアプローチは、もちろんビューモデルを使用することです。
model.hdnFlag = "some value";
return View(model);
ビューで強く型付けされたヘルパーを使用します。
@Html.HiddenFor(x => x.hdnFlag, new { id = "hdnFlag" })
ビューモデルがなければ、単純なHTML非表示入力を使用できます。
<input type="hidden" name="FullName" id="FullName" value="@ViewBag.FullName" />
Testがモデルで、Name、Addressがこのモデルのフィールドであると仮定して、コントローラーで次のコードを記述する必要があります。
public ActionResult MyMethod()
{
Test test=new Test();
var test.Name="John";
return View(test);
}
ビューでこのように使用して、隠し変数の設定値を指定します。
@model YourApplicationName.Model.Test
@Html.HiddenFor(m=>m.Name,new{id="hdnFlag"})
これにより、非表示の値= johnが自動的に設定されます。
次の方法を使用してみてください。
@Html.Hidden("hdnFlag",(object) Convert.ToInt32(ViewBag.page_Count))
あなたの質問に従ってモデルを使用していない場合は、このようにすることができます
@Html.Hidden("hdnFlag" , new {id = "hdnFlag", value = "hdnFlag_value" })
モデルを使用している場合(渡すモデルにhdnFlagプロパティがあることを考慮)、このアプローチを使用できます
@Html.HiddenFor(model => model.hdnFlag, new { value = Model.hdnFlag})
Idなどの値を再利用する場合、または単に保持する場合は、パラメーターとして「new {id = 'desiredID/value'})を追加して、jquery/javascriptから値にアクセスできるようにします。
@Html.HiddenFor(model => model.Car_id)
ViewData[""]
を使用して、コントローラーから値を転送できます。
ViewData["hdnFlag"] = userId;
return View();
さて、あなたで表示します。
@{
var localVar = ViewData["hdnFlag"]
}
<input type="hidden" asp-for="@localVar" />
これが役立つことを願っています...