14

我想从控制器设置隐藏字段的值。我该怎么做?

在视图部分我给出了这样的..

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

8 回答 8

18

您可以在中设置相应的值ViewData/ViewBag

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

但是更好的方法当然是使用视图模型:

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

并在您的视图中使用强类型助手:

@Html.HiddenFor(x => x.hdnFlag, new { id = "hdnFlag" })
于 2013-06-01T08:48:17.660 回答
15

Please find code for respected region.

Controller

ViewBag.hdnFlag= Session["hdnFlag"];

View

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

JavaScript

var hdnFlagVal = $("#hdnFlag").val();
于 2013-12-03T04:53:49.067 回答
7

如果没有视图模型,您可以使用简单的 HTML 隐藏输入。

<input type="hidden" name="FullName" id="FullName" value="@ViewBag.FullName" />
于 2015-01-09T22:04:56.800 回答
6

您需要在控制器上编写以下代码,假设测试是模型,名称、地址是该模型的字段。

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

这将自动设置隐藏值=约翰。

于 2013-06-01T08:51:42.250 回答
4

请尝试使用以下方式。

@Html.Hidden("hdnFlag",(object) Convert.ToInt32(ViewBag.page_Count))
于 2015-04-30T21:33:58.517 回答
3

如果您没有根据您的问题使用模型,您可以这样做

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

否则,如果您使用的是模型(考虑到传递模型具有 hdnFlag 属性),您可以使用此方法

@Html.HiddenFor(model => model.hdnFlag, new { value = Model.hdnFlag})
于 2018-04-26T22:15:50.070 回答
0

如果您要像 id 一样重用该值,或者如果您只想保留它,您可以添加一个 "new{id = 'desiredID/value'}) 作为其参数,以便您可以通过 jquery/javascript 访问该值

@Html.HiddenFor(model => model.Car_id)
于 2017-04-06T18:36:59.833 回答
0

您可以使用ViewData[""].

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

现在,在你看来。

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

希望这会有所帮助...

于 2018-04-02T07:14:03.533 回答