Як усталяваць значэнне схаванага поля ад кантролера ў MVC

Я хачу, каб усталяваць значэнне схаванага поля з controller.How я магу гэта зрабіць?

У краявідным частцы я даў, як гэта ..

 <div>
@Html.Hidden("hdnFlag", null, new { @id = "hdnFlag" }) 
</div>
10
@ Html.HiddenFor (х => x.UserName);
дададзена аўтар Vishal Sharma, крыніца
калі вы не выкарыстоўваеце мадэль па вашым пытанні вы можаце зрабіць, як гэты @ Html.HiddenFor ( «hdnFlag», новы {ID = «hdnFlag», значэнне = «hdnFlag_value»}), калі вы выкарыстоўваеце мадэль @ Html.HiddenFor (мадэль => model.hdnFlag, новае значэнне = {model.hdnFlag})
дададзена аўтар Snziv Gupta, крыніца

8 адказы

Вы можаце ўсталяваць адпаведнае значэнне ў ViewData/ViewBag :

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

Але значна лепш падыход да вядома выкарыстоўваць мадэль прадстаўлення:

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

і выкарыстоўваць строга тыпізаваных памочнік на ваш погляд:

@Html.HiddenFor(x => x.hdnFlag, new { id = "hdnFlag" })
12
дададзена

Вы можаце знайсці код для паважанай вобласці.

кантролер

выглядBag.hdnFlag= Session["hdnFlag"];

выгляд

<input type="hidden" value="@выглядBag.hdnFlag" id="hdnFlag" />

JavaScript

var hdnFlagVal = $("#hdnFlag").val();
11
дададзена
Выкарыстанне сеансу карыстальніка, каб захаваць значэнне можа зрабіць прыкладанне больш складаным. У меншай меры, вы зараз павінны турбавацца Ці значэнне ў сесіі дзейнічае кожны раз, калі вам трэба выкарыстоўваць яго.
дададзена аўтар Renan, крыніца

Без мадэлі прадстаўлення можна выкарыстоўваць просты HTML схаваны ўваход.

<input type="hidden" name="FullName" id="FullName" value="@ViewBag.FullName" />
5
дададзена

Вам трэба напісаць наступны код на кантролеры выкажам здагадку, што тэст з'яўляецца мадэль, і імя, адрас у поле гэтай мадэлі.

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"})

Гэта аўтаматычна ўсталёўваецца схаванае значэнне = Ян.

5
дададзена
гэта не будзе кампіляваць ... уаг test.Name = «Джон»; ??
дададзена аўтар Vishal Sharma, крыніца
гэта звычай кампіляцыі, таму што вы маеце патрэбу ў класе з імем уласнасці
дададзена аўтар CyberNinja, крыніца

Калі ласка, паспрабуйце выкарыстоўваць наступны спосаб.

@Html.Hidden("hdnFlag",(object) Convert.ToInt32(ViewBag.page_Count))
2
дададзена
Вялікі дзякуй - ідэальнае рашэнне - пасля некалькіх гадзін расчаравання, звязаных з гэтай праблемай.
дададзена аўтар Bicycle Dave, крыніца
Гэта сапраўды працуе для мяне. Маё прыкладанне працуе як шарм!
дададзена аўтар Guzzyman, крыніца

Калі вы збіраецеся паўторна выкарыстоўваць значэнне як ідэнтыфікатар або калі вы проста жадаеце захаваць яго, вы можаце дадаць «новы {ID =" desiredID/значэнне "}) у якасці яго параметраў, так што вы можаце атрымаць доступ да значэння праз JQuery/JavaScript

@Html.HiddenFor(model => model.Car_id)
0
дададзена

калі вы не выкарыстоўваеце мадэль па вашым пытанні вы можаце зрабіць, як гэта

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

інакш, калі вы карыстаецеся мадэль (З улікам праходжання мадэль мае ўласцівасць hdnFlag), вы можаце выкарыстаць гэты Approch

@Html.HiddenFor(model => model.hdnFlag, new { value = Model.hdnFlag})
0
дададзена

Вы можаце перадаць значэнне з кантролера, выкарыстоўваючы ViewData [ «»] .

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

Цяпер у вас паглядзець.

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

Спадзяюся, што гэта дапаможа ...

0
дададзена