使用 ajax 调用时,部分视图的 属性 设置不正确
Property of partial view is not set correctly when calling with ajax
我创建了一个 BaseView-class,我的所有视图都继承自它。这包含 属性 Language
。在所有“正常”视图中正确更改语言。
public abstract class BaseView<TModel> : WebViewPage<TModel>
{
string _language = TextRepository.DEFAULT_LANGUAGE;
public string Language { get { return _language; } }
public BaseView()
: base()
{
}
protected override void InitializePage()
{
base.InitializePage();
_language = Url.RequestContext.RouteData.Values["lang"] != null ? (string)Url.RequestContext.RouteData.Values["lang"] : _language;
}
}
public abstract class BaseView : BaseView<dynamic>
{
}
在我的一个观点中,我用 ajax 调用 CandidatePartialRow
,以添加另一部分行:
$("#addAnother").click(function () {
$.get('/MyController/CandidatePartialRow', function (template) {
$("#candidateEditor").append(template);
let target = $('#candidateEditor').children().last();
$('html, body').animate({
scrollTop: target.find('span').first().offset().top - 15
}, 1000);
});
});
public ActionResult CandidatePartialRow()
{
var view = PartialView("EditorTemplates/MyPartialView");
return view;
}
调用和追加工作完美。
所以我将语言从“DE”(也是默认语言)更改为“FR”。在“正常”视图中,语言发生了变化。当我点击添加局部视图的“添加”按钮时,局部视图被添加,但使用默认语言(“DE”)。
知道这里有什么问题吗?或者我怎样才能改变语言? (我也在控制器中获得了语言 - 但这也是默认语言,否则我可以在 CandidatePartialRow
方法中设置它。但我不知道如何..)
好的简单解决方案...
语言未添加到 url,因此 default-language 始终与路由一起设置。
我应该使用
而不是 '/MyController/CandidatePartialRow'
$.get('@Url.Action("CandidatePartialRow", "MyController")', function (template) {...})
我创建了一个 BaseView-class,我的所有视图都继承自它。这包含 属性 Language
。在所有“正常”视图中正确更改语言。
public abstract class BaseView<TModel> : WebViewPage<TModel>
{
string _language = TextRepository.DEFAULT_LANGUAGE;
public string Language { get { return _language; } }
public BaseView()
: base()
{
}
protected override void InitializePage()
{
base.InitializePage();
_language = Url.RequestContext.RouteData.Values["lang"] != null ? (string)Url.RequestContext.RouteData.Values["lang"] : _language;
}
}
public abstract class BaseView : BaseView<dynamic>
{
}
在我的一个观点中,我用 ajax 调用 CandidatePartialRow
,以添加另一部分行:
$("#addAnother").click(function () {
$.get('/MyController/CandidatePartialRow', function (template) {
$("#candidateEditor").append(template);
let target = $('#candidateEditor').children().last();
$('html, body').animate({
scrollTop: target.find('span').first().offset().top - 15
}, 1000);
});
});
public ActionResult CandidatePartialRow()
{
var view = PartialView("EditorTemplates/MyPartialView");
return view;
}
调用和追加工作完美。
所以我将语言从“DE”(也是默认语言)更改为“FR”。在“正常”视图中,语言发生了变化。当我点击添加局部视图的“添加”按钮时,局部视图被添加,但使用默认语言(“DE”)。
知道这里有什么问题吗?或者我怎样才能改变语言? (我也在控制器中获得了语言 - 但这也是默认语言,否则我可以在 CandidatePartialRow
方法中设置它。但我不知道如何..)
好的简单解决方案... 语言未添加到 url,因此 default-language 始终与路由一起设置。 我应该使用
而不是'/MyController/CandidatePartialRow'
$.get('@Url.Action("CandidatePartialRow", "MyController")', function (template) {...})