2016-12-25 7 views
1

私はajaxに問題があります。 ここにコードがあります。asp.net mvc。どのようにajaxビュー経由で変更を返す

モデル

public class ViewModel 
{ 
    public long requestedVar { get; set; } 
    public string ReturnedDescription { get; set; } 
} 

ビュー 名:AddNewInfo

<head> 
    <script> 

    $.datepicker.regional['ru'] = { 
      closeText: "Закрыть", 
      prevText: "&#x3C;Пред", 
      nextText: "След&#x3E;", 
      currentText: "Сегодня", 
      monthNames: [ 
       "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", 
       "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" 
      ], 
      monthNamesShort: [ 
       "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", 
       "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" 
      ], 
      dayNames: ["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"], 
      dayNamesShort: ["вск", "пнд", "втр", "срд", "чтв", "птн", "сбт"], 
      dayNamesMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], 
      weekHeader: "Нед", 
      dateFormat: "dd.mm.yy", 
      firstDay: 1, 
      isRTL: false, 
      showMonthAfterYear: false, 
      yearSuffix: "" 
     }; 
    </script> 
    <script> 
    var GlobalVar1=0; 

    $("#dropdownlist1").change(function getID() { 
    <some code> 
    GlobalVar1 = selectedValue; 
    alert(GlobalVar1); 

    $.ajax({ 
     url: "@Url.Action("myMethod1", "Home")", 
     type: 'POST', 
     async: false, 
     data: { requestedVar : GlobalVar1}, 
     success: function (data) { 
      alert('OK'); 
      $("html").html(result); 
     }, 
     error: function (error) { 
      alert('error'); 
     } 
    }); 
}); 
    </script> 
    </head> 
    <body> 
    <div> 
     @Html.DropDownListFor(m => m.SelectedDirectionID, new SelectList(Model.DirectionList.Select(x => new SelectListItem { Value = x.Id.ToString(), Text = x.DirectionName }), "Value", "Text"),"", new { @class = "Duration", required = "required", id="dropdownlist1" }) 
     @Html.ActionLink("+", "_AddDirection", "Home", null, new { @class = "modal-link btn btn-success"}) 
     <div>@Html.DisplayName("Choosen description")</div> 
     <div>@Html.TextBoxFor(m => m.ReturnedDescription, new { @class = "Duration", disabled = "disabled" })</div> 
    </div> 
    </body> 

コントローラー:

[HttpPost] 
    public System.Web.Mvc.ActionResult myMethod1(ViewModel m) 
    { 
     var db = new DB(); 
     ModelState.Clear(); 

     var returnedVal = db.GetDesctiption(m.requestedVar).First(); 
     m.ReturnedDescription = returnedVal.Description; 

     var vm = DataFactory.Refresh(); 
     vm.ReturnedDescription = m.ReturnedDescription; 

     return View("AddNewInfo", vm); 
    } 

すべてが今の仕組みUPDATE

アヤックスは成功し、私のコントローラのリターンビュー、このブラウザで示した図が、返されたビューのデータとPOSTリクエストを送信していない任意のJSスクリプトが含まれています。

質問: ブラウザに完全に戻る方法JSスクリプトとReturnedDescriptionの値も参照してください。

答えて

関連する問題