我有使用AJAX更新的部分视图。问题是Partial View需要带两个参数,一个不在查询字符串中。
这是控制器
public ActionResult _Unutrasnjost(string verzijaIme,int bojeId=0)
{
return PartialView(repositoryU.BojeUnutrasnjostVezano.Where(v =>v.VerzijaIme==verzijaIme&&v.BojeId == bojeId).ToList());
}
string verzijaIme在查询字符串中但是当加载了partialview时它告诉我这是未定义的
int bojeId不在查询字符串中,但是当用户点击按钮时,它由AJAX发送。
如果我只放置一个参数(string或int)并且如果我放置两个参数verzijaIme未定义,我不明白为什么一切正常?
如果我从int bojeId中删除= 0并将该参数放在查询字符串中但它不能接受那种解决方案
有什么建议吗?
Ajax代码
function unutrasnjostData(id) {
var urlclear = '@Url.Action("_Unutrasnjost", "Configurator")' + "?bojeId=" + id;
$.ajax({
cache: false,
type: 'POST',
url: urlclear,
success: function (data) {
$('#meniDesnoIzmjeneUnutrasnjost').html(data);
}
});
}
答案 0 :(得分:1)
看起来你根本没有将verzijaIme
传递给局部视图。您需要扩展unutrasnjostData
功能:
function unutrasnjostData(id, verzijaIme) {
var urlclear = '@Url.Action("_Unutrasnjost", "Configurator")' + "?bojeId=" + id + "&verzijaIme=" + verzijaIme;
$.ajax({
cache: false,
type: 'POST',
url: urlclear,
success: function (data) {
$('#meniDesnoIzmjeneUnutrasnjost').html(data);
}
});
}
或者,更好的是,发送邮件:
$.ajax({
cache: false,
data: { bojeId: id, verzijaIme: verzijaIme },
type: 'POST',
url: urlclear,
success: function (data) {
$('#meniDesnoIzmjeneUnutrasnjost').html(data);
}
});
请勿将请求中的查询字符串与来自AJAX调用的查询字符串的页面混淆。这是两个单独的请求。