Передача данных формы из диалогового окна jqueryUI в контроллер с ASP.NET MVC3 - PullRequest
2 голосов
/ 22 января 2012

Я новичок в ASP.NET MVC; у меня возникли проблемы с получением данных из диалоговой формы jqueryUI и передачей их контроллеру, чтобы я мог, например, сохранить данные формы в базе данных.

Метод в моем контроллере для обработки этого по какой-то причине не вызывается, несмотря на то, что, похоже, на него правильно ссылаются в коде jquery. Вот что я имею в виду (я, очевидно, опустил большую часть кода, просто поместив соответствующие части здесь для удобства чтения):

<a href="#" id="dialog_link">Open Dialog Box</a>



<div id="dialog" title="MakeSomeSampleNote">
    <form id="testform" method="post">
        <input id="tbx_casenote" name="tbx_casenote" type="text" style="height:50px; width:200px;" />
    </form>
</div>


$("#dialog").dialog({
    autoOpen: false,
    resizable: true,
    height: 210,
    width: 510,
    modal: true,
    buttons: {
        "Ok": function () {
             var noteval = $("#tbx-casenote").val();
             $.ajax({
             type: "POST",
             url: "@Url.Action("NoteController/SaveNote")",
             data: { content: tbx_casenote_val },
             cache: false,
             dataType: "json",
             success: function (data) {
                     $("#dialog").dialog("close");
                     }
             });
             },
             "Cancel": function () {
                    $(this).dialog("close");
             }}
      });





$('dialog_link').click(function () { 
      $('#dialog').dialog('open');
      return false;
 });

Вот метод, который я использую в контроллере; при отладке этот метод никогда не срабатывает после того, как я протестирую диалоговую форму и нажму кнопку «ОК»:

 [HttpPost]
 public JsonResult SaveNote(string NoteText)
 {
      //code to save this note to database - not relevant to question
      return Json(new { success = true });

 }

Спасибо.

Ответы [ 2 ]

2 голосов
/ 22 января 2012

Мне кажется, что ты @Url.Action не прав.Вы пробовали @Url.Action("SaveNote", "Note")?

Просто чтобы получить полный ответ, проблема заключалась в том, что слово "Controller" не должно появляться в вызове Url.Action.Каждое из следующих действий будет работать:

@Url.Action("SaveNote", "Note")

... или

@Url.Action("Note/SaveNote")

1 голос
/ 22 января 2012

Вы можете сделать URL как "имя элемента управления / имя метода"

...