2016-04-05 20 views
-2

Javascript'ten ActionResult'a parametreler nasıl gönderilir ve sonra bir sınıf alanına ayarlanır. Sizejavascript asp .net MVC 4'te bir ActionResult değeri gönder?

+0

AJAX kullanarak javascript'ten MVC eylemini çağırmaya mı çalışıyorsunuz? –

+0

, bir tamsayı parametresi alan ve test parametresini alamadığımda, denetleyiciye (örnek: public ActionResult crud (int language)) göndermek isteyen bir javascript işlevidir, lütfen yardım edin. – Elizabeth

+0

Yardım için bir kod göndermeniz gerekecek, tek yapabildiğim atm bu konu üzerinde soyut bir şekilde konuşabiliyor ... bununla ilgili olarak nasıl yapılacağı konusunda pek çok şey var: Google: https: // msdn. microsoft.com/en-us/library/dd381533(v=vs.100).aspx http://stackoverflow.com/questions/16186083/making-a-simple-ajax-call-to-controller-in-asp- net-mvc https://www.youtube.com/watch?v=7faB8kV43eg –

cevap

0

Komut

$('#btnDemo').click(function() { 
    var value = $('#txtName').val(); 
     $.ajax({ 
      type: 'POST', 
      url: '@Url.Action("ActionName","ControllerName")', 
      data: { 'value': value}, 
      dataType: 'json', 
      success: function (data) { 
       //write handler for success event 
      }, 
      error: function (xhr) { 
       alert(xhr.responseText); 
      } 
     }); 
}); 

Kontrolör Kod Bu senaryoda

[HttpPost] 
Public ActionResult ActionName(string value) 
{ 
    //suppose you have student class then you can set name property like below 
    Student obj = new Student(); 
    obj.Nmae = value; 
    //To Do your code 
} 
+0

Denemeye ve yorum yapmaya çalışacağım, teşekkürler – Elizabeth

+0

Bir önceki derlemede kodumu koydum ve hata geldi – Elizabeth

0

ederiz, büyük olasılıkla sen içinde kullanabileceğiniz senin Kontrolör Eylem bazı değer döndürmek için isteyeceksiniz senin İşleminiz tamamlandığında istemci tarafı kodu.

Unutulmaması gereken bir şey, Web tabanlı bir ortamda çalıştığınız için, çok sayıda istekte ısrar eden nesnelerin olması ihtimal dışı olmasıdır. Uygulamaya çalıştığınız davranış, en sık kullandığınız değerlerin Javascript'ten MVC Denetleyicisine gönderilmesi, ardından bir veritabanındaki bazı içeriğin kaydedilmesi/güncellenmesi ve sonuçların döndürülmesi (başarıyı veya gerçek değeri belirtmek için bir boolean) ile yapılır. .

Sunucu Tarafı Kontrol Eylem siz, Kontrolör birden çok değer (bir dizi) geçiyoruz bu durumda yapmanız sizin int değiştirerek parametre için belirtmek gerekir gibi görünüyor

Bir int[].

Örnek olarak, değerlerinizi dizide toplayıp döndüreceğiz. Eğer geçiyoruz yana

[HttpPost] 
public int sum(int[] input) 
{    
    return idioma.Sum(); 
} 

İstemci tarafı Kod

(örn veritabanınızda bir girdi, statik bir alan, vb güncelleyerek) ancak bu Kontrolör içinde istediğiniz davranış ne olursa olsun tipi gerçekleştirebilirsiniz

$.ajax({ 
    type: 'POST', 
    url: '@Url.Action("sum","ControllerName")', 
    data: { 'input': idiomas }, 
    dataType: 'json', 
    traditional: true, 
    success: function (data) { 
     // This should return your sum 
     alert(data); 
    }, 
    error: function (xhr) { 
     alert(xhr.responseText); 
    } 
}); 

Kodunuz görünüyor: değerler dizisi, yaptığınız zaman traditional nitelik true ayarlanmış olduğunu AJAX çağrı bunu desteklemek için emin olmak isteyeceksiniz idiomas başlangıçta bir dizi olarak tanımlanır, ancak daha sonra 2 değerine ayarlanır. Denetleyici Eyleminize ne yapacağınızı ve bu değerlerle gerçekte ne yapmak istediğinizi açıkça belirtmeniz gerekir.

+0

Geçersiz değil ActionResult olabilir mi? – Elizabeth

+0

Doğru. Nihayetinde Denetleyici Eyleminizde yapmak istediğiniz şeye bağlıdır. Bir mülkü mi yoksa bir varlığı mı güncelliyorsunuz? Bir değeri hesaplayıp döndürüyor musunuz? Neyi başarmaya çalıştığınıza bağlı olarak, hangi dönüş türünün en iyi şekilde kullanılacağını belirlemenin en iyi yolu olacaktır. –

+0

hanks, Test olacağım – Elizabeth

İlgili konular