Я создаю образец (это сработало) по вашему требованию методом GET.
Использовать AJAX get с URL /company/SaveRating?CompanyId=1¶m1=3¶m2=4
И используйте метод jquery addOrUpdateQueryStringParameter () для построения параметров URL
<td>
<fieldset class="rating">
<input type="radio" id="param1" name="srating" value="5"/>
<input type="radio" id="param1" name="srating" value="4"/>
<input type="radio" id="param1" name="srating" value="3"/>
<input type="radio" id="param1" name="srating" value="2"/>
<input type="radio" id="param1" name="srating" value="1"/>
</fieldset>
</td>
<td>
<fieldset class="rating">
<input type="radio" id="param2" name="pgrating" value="5"/>
<input type="radio" id="param2" name="pgrating" value="4"/>
<input type="radio" id="param2" name="pgrating" value="3"/>
<input type="radio" id="param2" name="pgrating" value="2"/>
<input type="radio" id="param2" name="pgrating" value="1"/>
</fieldset>
</td>
<input type="button" value="rate" onclick="rate();"/>
<script>
function addOrUpdateQueryStringParameter(uri, key, value) {
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
var separator = uri.indexOf('?') !== -1 ? "&" : "?";
if (uri.match(re)) {
return uri.replace(re, '$1' + key + "=" + value + '$2');
}
else {
return uri + separator + key + "=" + value;
}
}
function rate() {
var url = '/Company/SaveRating';
url = addOrUpdateQueryStringParameter(url, 'CompanyId', 1);
url = addOrUpdateQueryStringParameter(url, 'param1', $('input[name="srating"]:checked').val());
url = addOrUpdateQueryStringParameter(url, 'param2', $('input[name="pgrating"]:checked').val());
$.ajax({
url: url,
type: 'GET',
success: function (html) {
//todo
},
error: function (error) {
// handle
}
});
}
</script>
Обновление:
С вашим обновленным cshtml файлом он работал хорошо (я только что проверил), если вы установите input type hidden
вместо style="display:none"
<input type="hidden" name="CompanyID" value="@Model.ID"/>