Как получить кнопку, которая отправляет более одного значения обратно в ActionResult с помощью jquery? - PullRequest
0 голосов
/ 02 января 2012

У меня есть эта кнопка, с помощью которой я хочу отправить данные обратно в ActioResult.Я хочу отправить и идентификатор и имя объекта.Идентификатор работает нормально, но когда я также хочу отправить имя объекта, он не работает.Как отправить обратно несколько переменных в ActionResult?Это мой html / javascript:

@model test.Web.Framework.Areas.Administration.Models.TabNotesModel 
@using (UI.DocumentReadyScript())
{
    if (Model.meta.id.HasValue)
    {
        UI.jQuery("#tbl" + Model.meta.modelname).flexigrid(Model.Grid);
        }
    }
<form method="post" action="@Url.Action("TabNotes", new { cmd = "refresh" })"  id="@Model.meta.modelname">
<div class="ui-state-highlight ui-corner-all highlight" data-bind="visible: meta.message">
    <span class="ui-icon ui-icon-info"></span><strong data-bind="text: meta.message">
    </strong>
</div>
@using (UI.BeginBlock("Administation.TabNotes", UI.Label("Notes", "Notes").ToString(), test.Web.Framework.Core.enumIcons.pencil, false, false))
{
    <table id="@("tbl" + Model.meta.modelname)">
    </table>
}
</form>
<script type="text/javascript">
(function() {
    $('#load-partial').click(function() {
        $('#partial').load('@Url.Action("CreateNote", "Entity", new {itemId = @Model.meta.id, modelEntity = @Model.meta.entity})');
// I also tried modelEntity = "Phrase" to test, but that also didn't work
        }); 
    })(); 
</script>

<div id="partial"></div>
<button type="button" id="load-partial">Create Note</button>

и мой ActionResult.ModelEntity остается нулевым.ItemId действительно получает номер.

   public ActionResult CreateNote(
        [ModelBinder(typeof(Models.JsonModelBinder))]
        NoteModel Model, string cmd, long? itemId, string modelEntity)
    {

        if (cmd == "Save")
        {
            Model.meta.message = "Note saved";
            Entity entity = NotesRepository.GetEntity(modelEntity);
            NotesRepository.StoreNote(Model.subject, Model.text, entity, itemId);
            return RedirectToAction("TabNotes", new { modelEntity = modelEntity, id = itemId});
        }

        Model.meta.modelname = "CreateNote";
        Model.meta.JsViewModelType = "EditNoteModel";
        Model.meta.PostAction = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});


        return PartialView("CreateNotePartial",Model);

        }

1 Ответ

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

Url.Action принимает там только значения маршрута, так что я думаю, что вам нужен маршрут для обработки второго параметра.Я предполагаю, что у вашего текущего маршрута уже есть itemId, поэтому он работает.

...