我有下面的表格和一些代码。
@using (Html.BeginForm("Insert", "Question", "POST"))
{
<div id="add_tag">
<div id="list_tag">
<span class="post-tag" id="2">Phi kim<span class="delete-tag" title="Xóa Tag này"></span></span>
<span class="post-tag" id="22">Hóa Vô Cơ<span class="delete-tag" title="Xóa Tag này"></span></span>
<span class="post-tag" id="1">Lý<span class="delete-tag" title="Xóa Tag này"></span></span>
</div>
<div class="tag-suggestions hidden">
</div>
</div>
<div class="form-sumit clear">
<input type="submit" id="submit-button" value="Post your question" />
</div>
}
我在QuestionController中的Insert动作就像这样
[HttpPost]
[ValidateInput(false)]
public ActionResult Insert(FormCollection _form)
{
//my code here
}
我想通过使用Html.BeginForm和FormCollection来获取嵌套的span标签的id。我怎样才能做到这一点? Plz有人帮助我。非常感谢。
答案 0 :(得分:3)
当您单击“提交”按钮时,表单将收集此表单中的所有输入值,并使用以下格式发送到服务器:inputId = inputValue。 Span不是表单内的输入控件,表单不会收集其值或其他信息发送到服务器。您可以生成隐藏的输入控件并为其设置id值。然后在操作的服务器端,您可以从FormCollection中获取它。
[HttpPost]
[ValidateInput(false)]
public ActionResult Insert(FormCollection formCollection)
{
//for example all hidden input controls start with "hidden_tag" id
//and end with your number of tag:
var allNeededKeys = formCollection.AllKeys.Where(x => x.StartsWith("hidden_tag"));
var listOfId = allNeededKeys.Select(formCollection.Get).ToList();
}
祝你好运。
答案 1 :(得分:0)
我很确定你做不到。您可以使用fiddler来查看它们是否已发回服务器,但我认为它们不是。
答案 2 :(得分:0)
您应该使用隐藏字段将span的id发布到服务器。 视图是否强类型?