CS html Передача модели в JS Отправить функцию? - PullRequest
1 голос
/ 06 апреля 2020

Есть ли способ передать номер Model.SortOrder в функцию JS submit?

JS

  $("#pubmed-form").submit(function (event) {
            event.preventDefault();
            console.log('pubmed-form');
    });


  <div id="pubmed-container" style="@(Model.Type == "Pubmed" ? "display:block" : "display:none")">
        <form id="pubmed-form" class="form-horizontal">
            <div id="search-grid-container" style="text-align:center;margin: 20px 0;">
                @(Model.Text)
            </div>
            <hr />

            <div class="text-center">
                <button type="submit" class="btn btn-primary modal-submit-btn">Save</button>
                <button type="button" class="btn btn-default modal-close-btn" data-dismiss="modal">Close</button>
            </div>
        </form>
    </div>

enter image description here

1 Ответ

1 голос
/ 06 апреля 2020

Есть довольно много способов сделать это, в зависимости от ваших конкретных потребностей. Вы можете добавить свойство модели в качестве атрибута data к элементу form, который может быть прочитан при возникновении события submit:

$("#pubmed-form").submit(function(e) {
  e.preventDefault();
  var sortOrder = $(this).data('sortorder');
  console.log(sortorder);
});
<div id="pubmed-container" style="@(Model.Type == "Pubmed" ? "display: block" : "display: none")">
  <form id="pubmed-form" class="form-horizontal" data-sortorder="@Model.SortOrder">
    <div id="search-grid-container">
      @(Model.Text)
    </div>
    <hr />
    <div class="text-center">
      <button type="submit" class="btn btn-primary modal-submit-btn">Save</button>
      <button type="button" class="btn btn-default modal-close-btn" data-dismiss="modal">Close</button>
    </div>
  </form>
</div>

В качестве альтернативы вы можете использовать скрытое поле, таким образом, вам вообще не нужен JS, при условии, что вы не используете AJAX:

<div id="pubmed-container" style="@(Model.Type == "Pubmed" ? "display: block" : "display: none")">
  <form id="pubmed-form" class="form-horizontal">
    <div id="search-grid-container">
      @(Model.Text)
    </div>
    <hr />
    <div class="text-center">
      <button type="submit" class="btn btn-primary modal-submit-btn">Save</button>
      <button type="button" class="btn btn-default modal-close-btn" data-dismiss="modal">Close</button>
    </div>
    @Html.HiddenFor(m => m.SortOrder)
  </form>
</div>

Другим способом будет прямой вывод значения модели в JS, хотя это, вероятно, слишком тесно связывает JS / C# logi c:

$("#pubmed-form").submit(function(e) {
  e.preventDefault();
  var sortOrder = '@Model.SortOrder'; // remove the quotes if the model property is numeric
  console.log(sortorder);
});
...