[英]Calling ASP.NET MVC3 Razor Url.Action in partial automatically appends id when reloading in ajax
我有一个包含多个部分节的ASP.NET MVC页面。 这些部分中的每个部分都有一个脚本初始化,并且每个部分都从其自身进行刷新。
<script type="text/javascript">
$(document).ready(function () {
var section1Config = {
AddEditSection1Url: "@Url.Action("AddEditSection1", "Loan")"
};
});
</script>
初始加载时,结果如下所示:
<script type="text/javascript">
$(document).ready(function () {
var section1Config = {
AddEditSection1Url: "/Loan/AddEditSection1"
};
});
</script>
当我刷新该部分内容时,Url.Action包含我通过AJAX传递的ID,而无需我要求它:
<script type="text/javascript">
$(document).ready(function () {
var section1Config = {
AddEditSection1Url: "/Loan/AddEditSection1/2"
};
});
</script>
这是我正在拨打的客户端电话:
$.post('/Loan/AddEditSection1/2', function (data) {
$('#loanadd-1').html(data);
});
这是该jQuery帖子所调用的服务器端代码:
public PartialViewResult AddEditSection1(int id)
{
var viewModel = GetPopulatedAddEditViewModel(id);
return PartialView("Partials/AddEditSection1", viewModel);
}
关于渲染引擎为何如此“有用”的任何线索? 这确实使事情变得不必要地困难。
很多时候,您实际上会发现此行为非常有用,实际上您已经习惯了,请注意,通常您会在不使用控制器名称的情况下调用Url.Action
或Html.Action
,它们都是同一参数提供程序的一部分。
无论如何,在您明确不想包含参数的情况下,只需传入一个对象并将其设置为空即可:
<script type="text/javascript">
$(document).ready(function () {
var section1Config = {
AddEditSection1Url: "@Url.Action("AddEditSection1", "Loan", new {id=""})"
};
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.