答:我到目前为止所取得的成就如下:
@Html.Partial("_PartialPage",new [] { "NewAction","NewController","NewArea“})
中的字符串值动态填充
B.我的困难所在:
尽管做了很多努力&尝试,但我无法将#2中的@Url.Action值更改为#1中的div中的值。
我甚至尝试声明C#私有变量,并将它们填充到上面填充的div并将这些值传递给@Url.Action链接,但是我得到了一个运行错误。
有没有人知道如何将部分调用(#3)中的参数值传递给上面第2段中的Ajax post中的Url.Action方法。
提前谢谢。
发布于 2012-05-09 06:14:50
您可以有一个方法,该方法将提取传递给此强类型分部的值,并构建url:
@model string[]
@functions {
public string GetUrl() {
if (Model != null && Model.Length > 2)
{
var values = new RouteValueDictionary();
values["controller"] = Model[0];
values["action"] = Model[1];
values["area"] = Model[2];
return Url.RouteUrl(values);
}
return Url.Action("CurrentAction", "CurrentController", new { area = "CurrentArea" });
}
}
<script type="text/javascript">
var url = @Html.Raw(Json.Encode(GetUrl()));
$.ajax({
url: url,
type: 'POST',
success: function(result) {
// ...
}
});
</script>会这样呈现:
<script type="text/javascript">
var url = "/NewArea/NewAction/NewController";
$.ajax({
url: url,
type: 'POST',
success: function(result) {
// ...
}
});
</script>但是,如果不需要单独地使用这些路由值,另一种可能是将整个url直接传递给分部视图:
@Html.Partial("_About", Url.Action("NewAction", "NewController", new { area = "NewArea" }))然后在部分内部简单地使用它:
@model string
<script type="text/javascript">
var url = @Html.Raw(Json.Encode(Model));
$.ajax({
url: url,
type: 'POST',
success: function(result) {
// ...
}
});
</script>https://stackoverflow.com/questions/10507829
复制相似问题