C# asp mvc一起实现搜索和插入

C# asp mvc一起实现搜索和插入,c#,asp.net-mvc,razor,asp.net-mvc-5,C#,Asp.net Mvc,Razor,Asp.net Mvc 5,我将实现一个消息系统,用户可以在其中找到他的联系人并向他们发送消息。 我所做的:我有一个表单用于搜索联系人并向发件人显示结果(结果是联系人列表),然后还有另一个表单用于编写消息并发送,但是如何向发件人已选择的联系人发送消息 我的搜索代码: @using (Ajax.BeginForm("FindContact", "Home", null, new AjaxOptions() { UpdateTargetId = "Result", HttpMethod = "POST" }, new { id

我将实现一个消息系统,用户可以在其中找到他的联系人并向他们发送消息。
我所做的:我有一个表单用于搜索联系人并向发件人显示结果(结果是联系人列表),然后还有另一个表单用于编写消息并发送,但是如何向发件人已选择的联系人发送消息 我的搜索代码:

@using (Ajax.BeginForm("FindContact", "Home", null, new AjaxOptions() { UpdateTargetId = "Result", HttpMethod = "POST" }, new { id = "formfindContact" }))
                { 
                    @Html.AntiForgeryToken() 
     @Html.DropDownList("StateID", (ViewBag.States as SelectList), "States ...", new { @class = "form-control input-sm" })

    @Html.DropDownList("CityID", (ViewBag.Cities as SelectList), new { @class = "form-control input-sm" })

    @Html.TextBox("PersonName", "", new { @class = "form-control input-sm" })
    @Html.TextBox("PersonCode", "", new { @class = "form-control input-sm" })
    <button type="submit" class="btn btn-info" value="ُSearch" ></button>
    }


                <div id="Result">
                    @Html.Partial("_ContactList",new List<ContactResult>())
                </div>
@使用(Ajax.BeginForm(“FindContact”、“Home”、null、new AjaxOptions(){UpdateTargetId=“Result”、HttpMethod=“POST”}、new{id=“formfindContact”}))
{ 
@Html.AntiForgeryToken()
@DropDownList(“StateID”,(ViewBag.States作为SelectList),“States…”,新的{@class=“form control input sm”})
@DropDownList(“CityID”,(ViewBag.Cities作为SelectList),新建{@class=“form control input sm”})
@TextBox(“PersonName”,new{@class=“form control input sm”})
@TextBox(“PersonCode”,new{@class=“form control input sm”})
}
@Html.Partial(“\u ContactList”,new List())
这里是发送代码(两个代码在同一视图中):

@使用(Html.BeginForm(“SendMessage”,“Messages”,FormMethod.Post,new{id=“formSendMessage”}))
{
@Html.AntiForgeryToken()
@TextBox(“Title”,new{@class=“form control input sm”})
@TextBox(“Body”,new{@class=“form control input sm”})
@TextBox(“问候”,new{@class=“form control input sm”})
}
My@model是要在表中显示的消息列表

关于使用所选联系人列表发送消息,您有什么想法吗?

不幸的是,您没有为“联系人列表”或FindContact视图提供代码,因此我可以提出以下建议:

在SearchResulting视图中,您可以在value属性中添加带有联系人ID的复选框,同时选中它们。一些JS代码将更新formSendMessage中的隐藏输入。所以,当您在控制器上发布消息时,您应该会收到以逗号分隔字符串等形式显示的选定id

只需将以下内容添加到formSendMessage:

@Html.Heddien("SelectedContactsId")
还有一些jQuery示例:

$("#Result input[type='checkbox']").on('click', function(){ })
{
    var checkedIds= [];
    $('#Result input[type='checkbox'] :checked').each(function() {
        checkedIds.push($(this).val());
    });
    $("#SelectedContactsId").val(checkedIds.join(","));
}

当您说“发件人已选择”时,您是指通过
Ajax.BeginForm
返回的所有联系人,还是部分包含复选框或其他方法,仅选择一些联系人发送邮件。@StephenMuecke;实际上,在“FindContact”表单中,发件人根据其搜索参数查找并查看他选择的每个收件人。该部分可能包括
SendMessage
表单(而不是在主视图中)在
标记中包含联系人ID的隐藏输入,因此它们也会回发。我的FindContact表单有4个属性:(StateID、CityID、PersonName、PersonCode),SendMessage表单有3个用于发布的属性(标题、正文、问候语)。如何将所有这些属性一起发送?干得不错,让我试试你的findContact只是用来查找联系人,而不是和SendMessage一起发送。正如我看到的,您使用的是Ajax.BeginForm,因此它应该使用id Result在div中填充结果。这是我的错误,您应该在此容器中列出事件。更新了ansver。
$("#Result input[type='checkbox']").on('click', function(){ })
{
    var checkedIds= [];
    $('#Result input[type='checkbox'] :checked').each(function() {
        checkedIds.push($(this).val());
    });
    $("#SelectedContactsId").val(checkedIds.join(","));
}