2012-09-18 34 views
1

我正在開發和Microsoft MVC3項目,並且無法將已編輯的參數傳遞給控制器​​。它只會傳回原來的設置參數 例如:MVC將文本框傳遞給控制器​​(如果不在窗體標籤中)

@Ajax.ActionLink("share file", InviteController.Actions.Result, InviteController.Name, new { message = Model.Message }, new AjaxOptions 
      { 
       HttpMethod = "GET", 
       UpdateTargetId = "popup", 
       OnSuccess = "$('#popup').dialog('open')" 
      }, new { id = "popup-button" }) 

<label>Personal Message <span class="optional-message">(optional)</span></label> 
@Html.TextAreaFor(x => x.Message) 
</div> 

這將通過下面的控制器,但「消息」參數具有原始郵件,而不是更新的消息:

public ActionResult Result(FormCollection coll, string message) 
    { 

如果有人能給我一些建議,我很樂意。 非常感謝

回答

1

使用,而不是一種形式:

@using (Ajax.BeginForm(
    InviteController.Actions.Result, 
    InviteController.Name, 
    null, 
    new AjaxOptions 
    { 
     HttpMethod = "GET", 
     UpdateTargetId = "popup", 
     OnSuccess = "$('#popup').dialog('open')" 
    }, 
    new { id = "popup-button" })) 
{ 
    <label for="Message"> 
     Personal Message 
     <span class="optional-message">(optional)</span> 
    </label> 
    @Html.TextAreaFor(x => x.Message) 
    <button type="sybmit">share file</button> 
} 

而且不要忘記,HTML表單不能嵌套。所以如果你有一個外部形式,這是行不通的。

+0

嗨,感謝您的回覆我不能這樣做,因爲個人信息是頁面通用的,我有其他彈出窗口,這將需要此消息值。它將在任何形式之外 – Kelv

+0

不客氣。關於這個問題你還有其他問題嗎? –

相關問題