Как передать значения деталей текущей модели в действие контроллера в asp. net mvc, когда установлен флажок - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть таблица, которая отображает количество данных. то, что я пытаюсь сделать, это отправить обратно в контроллер детали строки, которая была проверена. эти детали, например, userName, как я могу сделать это:

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.UserName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Url)
        </td>
        <td>           
            @Html.CheckBoxFor(modelItem => item.IsApplied,new { id = "MyChk", onchange = "valueChanged()"})
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.NumberOfApplications)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
            @Html.ActionLink("Details", "Details", new { id=item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.Id })
        </td>
    </tr>
}

</table>
<script type="text/javascript">
    function valueChanged() {
        if ($('#Mychk').is(":checked"))      
    }
</script>

1 Ответ

0 голосов
/ 04 апреля 2020

Вы можете добавить javascript изменение даже для флажка ввода и сохранить значение на сервере всякий раз, когда он изменяет значение. В этом примере для отправки данных используется функция JQuery $.post(), которая хорошо работает с ASP. NET MVC.

Просмотр (файл cs html):

@foreach (var item in Model) {
    <tr>
        <td>
            {{ modelItem.UserName }}
        </td>
        <td>
            {{ modelItem.Url }}
        </td>
        <td>    
            <input id="IsApplied" type="checkbox" value="modelItem.IsApplied" value="@modelItem.IsApplied" />
        </td>
        <td>
            {{ modelItem.NumberOfApplications }}
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
            @Html.ActionLink("Details", "Details", new { id=item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.Id })
        </td>
    </tr>
}

<script>
    $('#IsApplied').change(function() {
        var isApplied = this.checked;


        $.post("ControllerName/YourAction", { IsApplied : isApplied }, 
            function(data){
                //do whatever with the response
            });            

    });
</script>

ASP. NET MVC Файл контроллера:

public class ControllerNameController: Controller // the name ends with 'Controller'
{
    [HttpPost]
    public ActionResult YourAction(SetIsAppliedModel model)
    {
        // logic to save model.IsApplied
    }
}

public class SetIsAppliedModel
{
    public bool IsApplied { get; set; }
}

Используемая помощь:

jQuery поменяйте флажок и нажмите событие

Как отправить данные в jquery .post на mvc контроллер, который использует ViewModel в качестве параметра?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...