我要实施一个消息系统,用户可以在其中找到他的联系人并向他们发送消息。
我做了什么:我有一个表单用于搜索联系人并向结果显示结果(结果是联系人列表),然后是另一个表单来编写邮件和发送,但如何向已经由发件人选择的联系人发送邮件< / strong>?
我的搜索代码:
@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>
这里有发送代码(两个代码在同一视图中):
@using (Html.BeginForm("SendMessage", "Messages", FormMethod.Post, new { id = "formSendMessage" }))
{
@Html.AntiForgeryToken()
@Html.TextBox("Title", "", new { @class = "form-control input-sm" })
@Html.TextBox("Body", "", new { @class = "form-control input-sm" })
@Html.TextBox("Regards", "", new { @class = "form-control input-sm" })
<a id="btnSend" href="#" class="btn btn-success" >Send</a>
}
我的@model是要在表格中显示的消息列表 关于使用所选联系人列表发送消息的任何想法??
答案 0 :(得分:1)
不幸的是,你没有为_ContactList或FindContact视图提供代码,所以我可以建议:
在search resultring视图中,您可以在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(","));
}