0

押されたボタンのサブミット値に応じて、AjaxOptionsの値を変更する方法を教えてください。ビューでAjax.BeginFormはサブミット値に応じてAjaxOptionsを変更します

:コントローラで

@using (Ajax.BeginForm("function_name", "Controller", 
new AjaxOptions 
{ 
    HttpMethod = "POST", 
    InsertionMode = InsertionMode.Replace, 
    UpdateTargetId = "resultsLoad", 
    OnBegin = "function_onBegin", 
    OnFailure = "function_onFailure", 
    OnSuccess = "function_onSuccess", 
    OnComplete = "function_onComplete" 
})) { 
<button type="submit" id="btn_1" value="submit1" name="submit"></button> 
<button type="submit" id="btn_2" value="submit2" name="submit"></button> 
} 

:私は、いずれかのボタンを押すことで投稿する場合は

[HttpPost] 
public ActionResult function_name(IndexViewModel model, string submit) 
{ 
    enter code... 
    return PartialView(); 
} 

、私は新しいPartialViewを返す前にAjaxOptions値を変更する必要があります。

答えて

0

begin関数のajaxには、要求情報という形式のオブジェクトである2番目のパラメータ(「文書化されていません」)が含まれています。

function function_onBegin(xhr, request) { 
    //console.log(request); 
    //request.data = submited form data as json string 
    var requestData = request.data;  

    if (requestData.indexOf('anyCondition') >= 0) { 
     //do something   
    } else { 
     // do something else 
    } 
} 

要求データにアクセスすることで、必要な動作を達成するために条件を実装することができます。

関連する問題