3

我正在使用 FuelUX 创建一个 Pillbox,以便用户可以使用 javascript 添加关键字。Javascript 从文本框中获取数据并将其添加到无序列表中。除了这些关键字之外,我还想添加一些我包装到 POCO 中并希望发布到服务器的字段。现在显然我想将这些关键字与我的 POCO 一起发布,或者也将这些关键字包装到我的 POCO 中,在本例中为 DummyClass。

谁能告诉我该怎么做?

这是我想用关键字和标题实现的视觉表示。 在此处输入图像描述

我的控制器代码:

public ActionResult Create()
{
    return View();
}

[HttpPost]
public ActionResult Create(DummyClass obj)
{
   // PROCESS OBJECT & LIST OF DATA OUT OF MY <UL>-control
}

我的查看代码:

@using System.Web.Optimization

@model Test.DummyClass

@{
    ViewBag.Title = "Index";
}

@section content
{
    <div class="editor-label">
        @Html.LabelFor(model => model.Title)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Title)
        @Html.ValidationMessageFor(model => model.Title)
    </div>

    <div id="MyPillbox" class="pillbox">
        <ul>
            <li data-value="foo">Item One</li>
            <li class="status-success">Item Two</li>
            <li class="status-warning">Item Three</li>
            <li class="status-important">Item Four</li>
            <li class="status-info">Item Five</li>
            <li class="status-success">Item Six</li>
            <li>Item Seven</li>
        </ul>
    </div>

    <input type="text" id="newTag" value="test"/>
    <input type="button" value="Add" id="btnAddTag"/>    

    <input type="submit"/>
}

@section scripts
{
    @Styles.Render("~/Scripts/fuelUX")

    <script>
        $(function() {

            $('#btnAddTag').click(function () {
                $('#MyPillbox ul').append('<li class="status-info">' + $('#newTag').val() + '</li>');
            });

        });
    </script>
4

2 回答 2

4

如果您可以为每个药丸添加一个隐藏的 HTML 字段,那么您可能会很高兴:

    $(function() {
        $('#btnAddTag').click(function () {
            $('#MyPillbox ul').append('<li class="status-info">' + $('#newTag').val() + '<input type="hidden" name="Tags" value="' + $('#newTag').val() + '" /></li>');
        });
    });

在控制器中,您可以为您的操作方法使用此模型:

public class SomeModel {
    public string Title { get; set; }
    public string[] Tags { get; set; }
}
于 2012-12-31T08:44:01.260 回答
0

您可以在创建药丸的同一按钮上附加一个事件,该按钮也使用 jquery ajax 在您的控制器上调用特定操作,传递对象的 json 表示形式,您可以将其转换为服务器端的 POCO 并在那里使用它。下面的链接可能会提供一些有关发帖的见解。

此外,如果您不想在每个药丸上发布,因为可能尚未创建记录,您可以使用上面提到的事件处理程序将 json 对象添加(或删除)到隐藏字段,该隐藏字段可以通过提交按钮发布jquery 或直接发布到特定路线。

jQuery post 数组 - ASP.Net MVC 4

于 2012-12-30T19:03:05.907 回答