AliRıza Adıyahşi AliRıza Adıyahşi - 1 year ago 56
jQuery Question

Load PartialView with using jquery Ajax?


@model OsosYeni23072012.Models.TblMeters


public ActionResult MeterInfoPartial(string meter_id)
int _meter_id = Int32.Parse(meter_id);
var _meter = entity.TblMeters.Where(x => x.sno == _meter_id).FirstOrDefault();

return PartialView("MeterInfoPartial", _meter);


@Html.DropDownList("sno", new SelectList(Model, "sno", "meter_name"), "-- Select Meter --", new { id = "meters"})


I want to load partial view, if dropdownlist change. But I dont know How can I do this. I cant find any example about this. I do this with actionlink. But I did not with dropdown before.

controller parameter
equals dropdownlist selectedvalue.


Answer Source

You could subscribe to the .change() event of the dropdown and then trigger an AJAX request:

<script type="text/javascript">
    $(function() {
        $('#meters').change(function() {
            var meterId = $(this).val();
            if (meterId && meterId != '') {
                    url: '@Url.Action("MeterInfoPartial")',
                    type: 'GET',
                    cache: false,
                    data: { meter_id: meterId }
                }).done(function(result) {

and then you would wrap the partial with a div given an id:

<div id="container">

Also why are you parsing in your controller action, leave this to the model binder:

public ActionResult MeterInfoPartial(int meter_id)
    var meter = entity.TblMeters.FirstOrDefault(x => x.sno == meter_id);
    return PartialView(meter);

Be careful with FirstOrDefault because if it doesn't find a matching record in your database given the meter_id it will return null and your partial will crash when you attempt to access the model.