1

我有下面的表格和一些代码。

@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 中的插入操作是这样的

    [HttpPost]
    [ValidateInput(false)]
    public ActionResult Insert(FormCollection _form)
    {
        //my code here
    }

我想通过使用 Html.BeginForm 和 FormCollection 来获取嵌套的 span 标签的 id。我怎样才能做到这一点?请有人帮助我。非常感谢。

4

3 回答 3

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();
}

祝你好运。

于 2012-05-05T11:14:23.770 回答
0

我很确定你不能。您可以使用 fiddler 来查看它们是否已发布回服务器,但我不认为它们是。

于 2012-05-05T08:27:28.223 回答
0

您应该使用隐藏字段将跨度的 ID 发布到服务器。视图是强类型的吗?

于 2012-05-05T10:51:05.013 回答