web-dev-qa-db-ja.com

mvcのコントローラーから非表示フィールドの値を設定する方法

コントローラーから非表示フィールドの値を設定したいのですが、どうすればよいですか?

ビュー部分では、私はこのように与えました。

 <div>
@Html.Hidden("hdnFlag", null, new { @id = "hdnFlag" }) 
</div>
11
user2156088

尊敬される地域のコードを見つけてください。

コントローラ

ViewBag.hdnFlag= Session["hdnFlag"];

表示する

<input type="hidden" value="@ViewBag.hdnFlag" id="hdnFlag" />

JavaScript

var hdnFlagVal = $("#hdnFlag").val();
13
Krunal Solanki

ViewData/ViewBagに対応する値を設定できます。

ViewData["hdnFlag"] = "some value";

しかし、はるかに優れたアプローチは、もちろんビューモデルを使用することです。

model.hdnFlag = "some value";
return View(model);

ビューで強く型付けされたヘルパーを使用します。

@Html.HiddenFor(x => x.hdnFlag, new { id = "hdnFlag" })
12
Darin Dimitrov

ビューモデルがなければ、単純なHTML非表示入力を使用できます。

<input type="hidden" name="FullName" id="FullName" value="@ViewBag.FullName" />
6
mokumaxCraig

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が自動的に設定されます。

5
sandeep modi

次の方法を使用してみてください。

@Html.Hidden("hdnFlag",(object) Convert.ToInt32(ViewBag.page_Count))
3
RajeshVerma

あなたの質問に従ってモデルを使用していない場合は、このようにすることができます

@Html.Hidden("hdnFlag" , new {id = "hdnFlag", value = "hdnFlag_value" })

モデルを使用している場合(渡すモデルにhdnFlagプロパティがあることを考慮)、このアプローチを使用できます

@Html.HiddenFor(model => model.hdnFlag, new { value = Model.hdnFlag})
2
Snziv Gupta

Idなどの値を再利用する場合、または単に保持する場合は、パラメーターとして「new {id = 'desiredID/value'})を追加して、jquery/javascriptから値にアクセスできるようにします。

@Html.HiddenFor(model => model.Car_id)
0
CyberNinja

ViewData[""]を使用して、コントローラーから値を転送できます。

ViewData["hdnFlag"] = userId;
return View();

さて、あなたで表示します。

@{
    var localVar = ViewData["hdnFlag"]
}
<input type="hidden" asp-for="@localVar" />

これが役立つことを願っています...

0
Ashwini Gupta