Задать вопрос
LifeAct
@LifeAct
Создаем и раскручиваем, не ставим на конвейер

ASP MVC Как получить данные формы?

Всем привет! Вроде тривиальная задача, но бьюсь уже час.

есть представление:

@using (Ajax.BeginForm("AddRecord", "Records",
                                new AjaxOptions
                                {
                                    HttpMethod = "post",
                                    UpdateTargetId = "target",
                                    LoadingElementId = "sendingProgress",
                                    InsertionMode = InsertionMode.Replace,
                                    OnSuccess = "OnSucc"
                                }))

            {
                <fieldset>
  @Html.HiddenFor(model => model.Event_Id, new { id = "hiddenID" })
.....

 <p id="VievAfterGreate">
                <h5>Вы можете:</h5>                
                @Html.ActionLink("Просмотреть запись", "VoewDetailed", "Records", new {id = Model.Event_Id }, new { target = "_blank"  })
            </p>
.....

<script type="text/javascript">
//так как модель еще не содержит айдишку записи (ее еще не добавили) - скрываю ссылку просмотра записи
  $('#VievAfterGreate').hide();

 //ПОЛУЧАЕМ ДЖЕЙСОН ПАРАМЕТР id добавленной записи, который отправил нам контроллер при добавлении записи
    function OnSucc(data) {
        $('#hiddenID').val(data.Id);

// проверяю - айдишка есть
 alert($('#hiddenID').val());

 //айдишка есть, строкой выше мы ее передали в модель - @Html.HiddenFor(model => model.Event_Id, new { id = "hiddenID" })
//теперь показываю ссылку для просмотра
 $('#VievAfterGreate').show();
           }

</script>


но как не делаю, параметр id для передачи в ссылку просмотра - пустой
new {id = Model.Event_Id }

что я не так делаю?

UP
как временно решение сделал:

....
<span id="LinkViewAfterGreate"></span>
....

<script type="text/javascript">

  function OnSucc(data) {
        $('#Event_Id').val(data.Id);
        
        var link = document.createElement('a');
        link.textContent = 'Просмотреть созданную запись';
        link.href = 'http://localhost:11733/Records/record/' + data.Id;
        link.target = '_blank';
        document.getElementById('LinkViewAfterGreate').appendChild(link);
        .....
</script>
  • Вопрос задан
  • 384 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@dmitryKovalskiy
программист средней руки
Смотрите на объект модели, которую передаете в эту View. Если он пустой, то о каких id может идти речь?!
Как вариант - проверьте регистр записи Id в маршруте и в вашей записи. Есть шанс что Razor просто не понимает в какую часть ссылки ее пристроить.
P.S. У вас в коде ТЬМА(!!!) опечаток разных видов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы