0

我的 ViewModel 包含一些对象(IEnumerable)的集合。集合中的项目按行显示在标签中。当我提交表单时,它会触发提交 jQuery 函数来验证自己。我需要从显示的表中获取值并转换为对象。

看一下这个:

//
// the table to display my collection content
<div id="publications">
    Items to publish:

    <table>
        <thead><tr>
            <td></td>
            <td>Item</td>
        </tr></thead>

        <tbody>
            @{
                for (int counter = 0; counter < Model.Publications.Count; ++counter)
                {
                    <tr>
                        <td>
                            @Html.HiddenFor(m => Model.Publications[counter].ID)
                            @Html.CheckBoxFor(m => Model.Publications[counter].Selected)
                        </td>
                        <td>
                            @Html.HiddenFor(m => Model.Publications[counter].ItemID)
                            @Html.DisplayTextFor(m => Model.Publications[counter].ItemDescription)
                        </td>
                    </tr>
                }
            }
        </tbody>
    </table>
</div>

//
// The Publication ViewModel
public class PublicationViewModel {
    public string ID { get; set; }
    public bool Selected { get; set; }
    public string ItemID { get; set; }
    public string ItemDescription { get; set; }
}

//
// The main ViewModel
public class MainViewModel {
    public string ID { get; set; }
    public string Name { get; set; }
    public IEnumerable<PublicationViewModel> Publications { get; set; }
}

问题是如何使用 jQuery 将该表转换为序列化对象。十分感谢大家!


PHP IMAP 邮箱处理 - MessageNo 上的循环?

一个快速的问题,但我似乎无法在任何地方找到可靠的答案。我正在使用 PHP IMAP 来处理邮箱中的消息,但我正在使用基于 imap_num_msg 的循环来处理它们。

$imap = imap_open("{imap.test.com:143}INBOX", "test@test.com", "password");
$message_count = imap_num_msg($imap);
for ($i = 1; $i <= $message_count; ++$i) 
{ "Processing Code using $i" }
imap_expunge($imap);
imap_close($imap);

这是正确的处理方式,还是我应该为每条消息获取一组 UID?如果我坚持使用这段代码,当有新消息进来时会发生什么,消息的顺序会改变并影响循环吗?

4

1 回答 1

1

将您的代码放入 a<form>并使用Jquery serialize

<form id="publications">
    Items to publish:

    <table>
        <thead><tr>
            <td></td>
            <td>Item</td>
        </tr></thead>
            <tbody>
            @for (int counter = 0; counter < Model.Publications.Count; ++counter)
            {
                <tr>
                    <td>
                        @Html.HiddenFor(m => Model.Publications[counter].ID)
                        @Html.CheckBoxFor(m => Model.Publications[counter].Selected)
                    </td>
                    <td>
                        @Html.HiddenFor(m => Model.Publications[counter].ItemID)
                        @Html.DisplayTextFor(m => Model.Publications[counter].ItemDescription)
                    </td>
                </tr>
            }
        </tbody>
    </table>
</form>

和你的 jQuery 脚本:

$('form').submit(function() {
    alert($(this).serialize());
    return false;
});
于 2013-01-23T13:29:07.330 回答