2015-10-24 4 views
0

Я хочу опубликовать три параметра для действия YeniKayit. Я могу опубликовать первый. Но когда я после второй, я получаю сообщение об ошибке:Как отправить еще один параметр в действие MVC jquery

The parameters dictionary contains a null entry for parameter 'koyid' of non-nullable type

YeniKayit действие:

[HttpPost] 
public ActionResult YeniKayit(Afet model, HttpPostedFileBase file, int koyid, int mahalleid, int afetturid) 
{..} 

JQuery код:

$('select[name=MahalleId]').change(function() { 
     var id = $(this).val(); 
     $.post('@Url.Action("YeniKayit")/?mahalleid=' + id) 
     }); 
    $('select[name=Koy]').change(function() { 
     var id = $(this).val(); 
     $.post('@Url.Action("YeniKayit")/&koyid=' +id) 

    }); 
    $('select[name=afettur]').change(function() { 
     var afetid = $(this).val(); 
     $.post('@Url.Action("YeniKayit")/&afetturid=' + afetid) 

    }); 

MahalleId объект:

<select name="MahalleId" class="form-control" data-val="true" 
     data-val-required="Mahalle alanı boş bırakılamaz"> 
</select> 
@Html.ValidationMessageFor(model => model.Mahalle.MahalleId, string.Empty, new { @class = "text-danger" }) 

Koy объект:

<select name="Koy" class="form-control" data-val="true" 
     data-val-required="Köy alanı boş bırakılamaz"> 
</select> 
@Html.ValidationMessageFor(model => model.Koy.KoyId, string.Empty, new { @class = "text-danger" }) 

afettur объект:

@Html.DropDownList("afettur", ViewData["Türler"] as SelectList, "-- Tür Seçiniz --", new { style = "width:250px", @class = "form-control" }) 
+0

Вы нужно '$ .post ('@ Url.Action (« YeniKayit »), {koyid: someValue, mahalleid: anotherValue, afetturid: anotherValue})' Но почему у вас есть параметр «Afet model» - это не имеет смысла - и вы не могу опубликовать файл с помощью '$ .post()', поэтому его непонятно, почему у вас есть этот параметр, а также –

+0

. Я использую модель для другого процесса (вставка значения модели в базу данных). –

+0

Тогда, если ваша модель не содержит свойств 'koyid',' mahalleid' и 'afetturid' - в этом случае вы можете удалить все остальные параметры, а затем удалить его. Вместо этого инициализируйте новый экземпляр в методе - 'var model = new Afet();' –

ответ

0

Ваша вторая строка запроса, кажется неправильным.

Дайте этому попытку:

//change 
$.post('@Url.Action("YeniKayit")/&koyid=' +id); 
//to 
$.post('@Url.Action("YeniKayit")?koyid=' +id); 

Чтобы устранить неисправность, необходимо реализовать функцию ошибок .POST функции следующим образом:

$.post('@Url.Action("YeniKayit")/&koyid=' +id) 
    .error(function(responseObject){ 
    /*the object signature looks like this: 
    responseObject= 
    { 
     readyState:n 
     ,responseText:"server response" 
     , status:"http status code" 
     , statusText:"the meaning of the status code" 
    } 
    */ 
}); 

Вот хороший ресурс: Uniform Resource Identifier (URI): Generic Syntax

+0

Infact, это именно то, что я хочу сделать сейчас. Прежде всего, когда я меняю имя объекта KoyId - это имя coloumn в базе данных, оно отлично работает. Я хочу проверить, выбирает ли пользователь какой-либо параметр. Затем я попробовал ваш код. В противном случае я не понимаю, что мне следует делать –

Смежные вопросы