标签: html.hiddenfor

将ViewBag实例传递给Razor中的HiddenFor字段

使用ASP.NET MVC和Razor,我试图将ViewBag项从控制器传递给HiddenFor字段(使用Razor).我收到以下消息:扩展方法不能通过动态调度.

  @Html.HiddenFor(m=>m.PortfolioId, ViewBag.PortfolioId);
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc razor html.hiddenfor

5
推荐指数
2
解决办法
2万
查看次数

在控制器中设置为True后,模型的Hidden bool字段仍为False

我在ViewModel类中有这个属性:

public bool AreSimilarEntitiesChecked { get; set; }

在我的控制器中,我将其值设置为"true"并返回带有模型的View:

model.AreSimilarEntitiesChecked = true;

return View(model).WithWarning("Check the similar mentors before saving!");
Run Code Online (Sandbox Code Playgroud)

在我的视图中有一个表单,我放置了这个属性的隐藏字段:

@Html.HiddenFor(m => m.AreSimilarEntitiesChecked)
Run Code Online (Sandbox Code Playgroud)

在View返回包含AreSimilarEntitiesChecked的模型后,其值保持为False desipte我在控制器中设置了True值.

我不知道它有什么问题.

生成的HTML:

<input name="AreSimilarEntitiesChecked" id="AreSimilarEntitiesChecked"
 type="hidden" value="False" data-val-required="The AreSimilarEntitiesChecked
 field is required." data-val="true">
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc hidden-field asp.net-mvc-4 html.hiddenfor

5
推荐指数
1
解决办法
2166
查看次数

如何在Asp.Net MVC中为HiddenFieldFor设置默认值

我正在使用HiddenFor与模型绑定,它绑定值.我想将绑定值重置为零.我该怎么做?

我试过这个,但它不起作用......

<% foreach (var item in Model ) { %>
 <%: Html.HiddenFor(model => model.ID,new { @value="0"})%>
 <% } %>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-2 html.hiddenfor

4
推荐指数
1
解决办法
7306
查看次数

模型活页夹和隐藏字段

我有一个简化的测试场景,可用于提出这个问题:一个产品可以有很多组件,一个组件可以属于许多产品.EF生成了类,我将它们修改如下:

public partial class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Component> Components { get; set; }
}
public partial class Component
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Product> Products { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

通过以下控制器操作完成组件的创建:

public ActionResult Create(int ProductId)
{
    Product p = db.Products.Find(ProductId);
    Component c = new Component();
    c.Products.Add(p);
    return PartialView(c);
} 

[HttpPost]
public ActionResult Create(Component …
Run Code Online (Sandbox Code Playgroud)

defaultmodelbinder razor asp.net-mvc-3 html.hiddenfor

3
推荐指数
1
解决办法
2万
查看次数

hiddenFor helper是从action参数中提取id,而不是viewModel

我偶然发现ASP.Net MVC的一个非常奇怪的情况,传递一个"id"作为动作参数和一个"id"隐藏的表单元素.我有一个具有"id"参数的动作.此id值表示项目.我有一个控制器操作,我正在创建一个数据输入表单,用于将员工分配给传入的项目(我创建一个下拉列表,管理员选择要分配给传递项目的员工).通过将员工分配给项目,我创建了一个ProjectEmployee记录(项目ID,员工ID和表示组合的ID,该组合是数据库中的标识列).标识列(名为"id")也是隐藏的表单元素.这是必要的,因为我需要能够在以后编辑项目/员工分配.

无论如何,在为项目创建新的员工分配时,项目ID(传递给操作的"id")将应用于"id"隐藏的表单元素.

我正在通过117行动.117是projectId.它被设置为"id"隐藏字段,该字段应该为0,因为0表示新项目/员工的分配.

查看模型

id  - unique id that represents the Project/Employee combination
projectId - the "Id" being passed to action
EmployeeId - what the admin is selecting from drop down
rate
startdate
endDate
...
Run Code Online (Sandbox Code Playgroud)

数据输入表格

@Html.HiddenFor(m => m.Id) 
@Html.HiddenFor(m => m.ProjectId)
...
Id: @Model.Id <br />
ProjectId: @Model.ProjectId<br />
Run Code Online (Sandbox Code Playgroud)

因此,@ Html.HiddenFor(m => m.Id)呈现隐藏的表单元素,其值为117. @ Model.Id将0呈现给UI.单步执行代码我可以在视觉上看到Id属性的值为0.为什么HiddenFor会将它的线交叉并拉出117的值?

这个bug已经进入了生产阶段,所以我手上的数据搞得一团糟,因为我没有在数据库表中创建新记录,而是实际更新了现有记录,因为"Id"属性被错误地设置了从0(表示新记录)到117(这是projectId),因此我正在更新不同的记录.

html-helper asp.net-mvc-3 html.hiddenfor

3
推荐指数
1
解决办法
1437
查看次数