【问题标题】:Fill @Html.Hidden with div value用 div 值填充 @Html.Hidden
【发布时间】:2013-08-16 09:37:36
【问题描述】:

假设我有一个这样的 div:

<div id ="carmodel"></div>

页面加载后 5 秒,该 div 将使用 Javascript 填充,因此如下所示:

<div id ="carmodel">Audi A4</div>

现在我需要在提交表单时将“Carmodel”div 中的文本发送到控制器。

@using (Html.BeginForm("Method", "Controller"))
{
     @Html.TextBox("textbox1", "")
     @Html.TextBox("textbox2", "")   
     <input type="submit" value="Subtmit"/>
}

我想过使用隐藏字段并一起发布,但我不知道如何使用“Carmodel”div中的文本填充隐藏字段:

@Html.Hidden("carmodelhiden", "");

似乎我需要使用 JQuery 来检索这样的文本:

var value = $("#carmodel").text();

但是我如何将它发送到控制器?

我也考虑过使用 .ajax 来发布它,但不确定如何处理控制器中的值,因为控制器中的 ajax 方法与表单的发布位置是分开的。

有人有什么建议吗?

【问题讨论】:

  • 只是将java脚本放在脚本标签中是行不通的。你需要挂钩一个事件。

标签: c# jquery html asp.net-mvc


【解决方案1】:

你需要设置隐藏输入的值:

$('#carModelHidden').val(...);

【讨论】:

  • 哇!我没想到!让我试试看:)
  • 顺便说一句,你为什么不呢?你的问题基本上是问如何设置隐藏输入的值。
  • 你传递了什么值?使用 Javascript 调试器和网络工具。
  • 你在 DOM 检查器中看到了什么?特别是,它有 ID 吗?
  • 另外,我会在强类型视图中使用 html.HiddenFor(m => // some property in model)。还要确保它在你的表单之间使用语句。
【解决方案2】:

确保将隐藏值放在表单 using 语句之间。此外,使用强类型视图绑定模型中的属性。

@using (Html.BeginForm("Method", "Controller"))
{
<div id ="carmodel">
@Html.HiddenFor(model => model.SomeProperty)
</div>
}




@section scripts{
<script>
// Hook into some event and set: 
$('#carModelHidden').val(...);
</script>
}

【讨论】:

  • 这是一个很好的做法...您将如何将值传递给您的控制器?查看包?
  • 答案还是不错的,绑定只是一个建议...如果绑定不适合您,请使用 @html.Hidden 而不是 HidenFor。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-31
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
  • 2021-05-07
相关资源
最近更新 更多