2012-01-02 26 views
0

我有這個按鈕,我想要將數據發送回ActioResult。我想發送和id和實體名稱。該ID工作正常,但是當我也想發送實體名稱不起作用。我如何發回多個變量到ActionResult?這是我的html/javascript:如何讓一個按鈕發送多個值回jQuery的ActionResult?

@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); 

     } 
+2

您是否配置了路由,其中​​包含modelEntity佔位符? – Sascha 2012-01-02 15:16:24

回答

1

Url.Action只接受路由值,所以你認爲你需要一個路由來處理第二個參數。我假設你的當前路線已經有了itemId,這就是它工作的原因。

+0

如何爲新變量創建路線? – 2012-01-02 15:34:05

+1

在Global.asax中,你應該看到你的路線,你應該看到一個看起來像是「{controller}/{action}/{itemId}」的 - 你需要爲此添加另一個可選參數,因此它看起來像是{controller}/{action}/{itemId}/{modelEntity}'這樣控制器'Entity/CreateNote'將獲得兩個參數。 – 2012-01-02 15:50:05

+0

我的Global.asax只有<%@ Application Codebehind =「Global.asax.cs」Inherits =「test.Web.Healthcare.MvcApplication」Language =「C#」%> – 2012-01-02 16:01:59

相關問題