1

Microsoft MVC3 プロジェクトに取り組んでおり、編集されたパラメーターをコントローラーに渡すことができません。元の設定パラメーターのみを返します。次に例を示します。

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

どなたかアドバイスを頂ければ幸いです。どうもありがとう

4

1 に答える 1

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フォームはネストできないことを忘れないでください。したがって、外部フォームがある場合、これは機能しません。

于 2012-09-18T09:38:39.120 に答える