2014-09-19 2 views
0

Я собираюсь внедрить систему обмена сообщениями, в которой пользователь может найти свои контакты и отправить им сообщение.
Что я сделал: У меня есть форма для поиска контактов и отображения результата отправителю (результат - список контактов), затем другая форма для записи сообщения и отправки, но Как отправить сообщение тем контактам, которые уже выбраны отправителем ?
Мой код для поиска:asp mvc реализовать поиск и вставить вместе

@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

Когда вы говорите _ "уже выбран отправителем" _, вы имеете в виду все контакты, возвращаемые 'Ajax. BeginForm' или флажки частично включают флажки или какой-либо другой метод, чтобы выбрать только некоторые для отправки сообщения. –

+0

@StephenMuecke; Фактически в форме «FindContact» отправитель находит и видит каждый получатель, который он выбрал, в соответствии с его параметрами поиска. –

+0

Частичное может включать форму «SendMessage» (а не в основном виде), а в тегах «

» - скрытые входы для контактных ID, чтобы они также отправили обратно –

ответ

1

К сожалению, вы не prowided кода для _ContactList или FindContact взглядов, так что я могу предложить следующее:

В поисках зрения resultring вы можете добавить флажки с контактным ID в значении атрибута, проверяя их некоторые JS кода будет обновлять скрытый ввод в formSendMessage. Поэтому, когда вы публикуете свое сообщение на контроллере, вы должны получить выбранный идентификатор в виде, например, строки, разделенной запятыми.

Просто добавьте 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(",")); 
} 
+0

. Моя форма FindContact имеет 4 свойства: (StateID, CityID, PersonName, PersonCode) и форму SendMessage имеет 3 свойства для публикации (Title, Body, Regards). Как я могу отправить все эти свойства вместе? Это хорошая работа, позвольте мне попробовать –

+0

Ваш findContact используется для поиска контактов, а не для отправки вместе с SendMessage. Как я вижу, вы используете Ajax.BeginForm, поэтому он должен заполнять результаты в div с идентификатором Result. Вот моя ошибка, вы должны перечислить события в этом контейнере. Обновлен ансвер. – aleha

+0

Кажется, это хороший способ, поэтому я проверил его как принятый ответ –

Смежные вопросы