asp.net mvc 可不可以在嵌入页面时,让嵌入页面访问控制器?

d383137359 2018-08-24 11:56:04
如题,想让局部刷新,又想使用模型的方式,一个主页包含的内容比较多。分成了几个显示模型。
每个模型的填充数据处理量较大,在运行时我只想更新某一个模型的数据,其他模型不动。我希望使用@Html.Partial的另一个页面,让那个页面单独访问一个控制器是否可以?我看@Html.Partial好像所加载的页面不能访问控制器了,是引入纯html页面用。如果不希望用写大量js来实现。还有没有其他方法?

而且在asp.net mvc里有时使用@using(ajax.beginForm)有时也不是好事,不适当的插入表单刷新部局常常会破坏boostartp样式,求解答!
...全文
585 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
还想懒够 2018-09-09
  • 打赏
  • 举报
回复
@Html.Action("Action Name","Controller Name")即可实现
epui2008 2018-09-09
  • 打赏
  • 举报
回复
正儿八经 用ajax 来实现
qq_22633675 2018-09-07
  • 打赏
  • 举报
回复
引用 9 楼 qq_22633675 的回复:
MVC嵌入页面建议用分布视图

这是调用的代码
<div class="input-group">
<span class="input-group-addon">用户角色</span>
@{Html.RenderPartial(Tool.StringHelper.PartialView_AllPages_Role_List, ViewData[Tool.StringHelper.ViewData_Role_List]);}
</div>

这是被调用的分布视图代码
@model System.Collections.Generic.List<ProjectManager.Models.Role>
<select class="form-control" id="Role_List_Select" v-model="Special_Role">
<option value="0">--请选择--</option>
@foreach (ProjectManager.Models.Role obj in Model)
{
<option value="@(obj.Id)">@(obj.Role_Name)</option>
}
</select>

qq_22633675 2018-09-07
  • 打赏
  • 举报
回复
MVC嵌入页面建议用分布视图
正怒月神 版主 2018-08-24
  • 打赏
  • 举报
回复
你说的这个好像使用iframe就可以了饿
我是小数位 2018-08-24
  • 打赏
  • 举报
回复
引用 1 楼 mirror030 的回复:
这个使用AJAX,但并不需要大量JS
只需要发一个请求,得到控制器返回的页面就行,这个页面就是你想刷新的那个部分页.
,是的,如兄台所说的就好了,如 $.ajax({
type: "post",
url: "/区域/控制器名称/方法名称",
dataType: "html",
success: function (data) {
$("#要填充的DIV").html(data);
}
});当然,用你那个方法了是可以的,估计你那里写错了,这要看你的代码才知道 问题
mirrorspace 2018-08-24
  • 打赏
  • 举报
回复
这个使用AJAX,但并不需要大量JS
只需要发一个请求,得到控制器返回的页面就行,这个页面就是你想刷新的那个部分页.
我是小数位 2018-08-24
  • 打赏
  • 举报
回复
@Html.Partial 一般用于自制控件类页面,或常用功能的页面的加载,页面上用起来简单,但@Html.Partial加载的页,一样可用ajax加载啊
我是小数位 2018-08-24
  • 打赏
  • 举报
回复
引用 5 楼 d383137359 的回复:
[quote=引用 2 楼 CXJ0062008 的回复:]当然,用你那个方法了是可以的,估计你那里写错了,这要看你的代码才知道 问题


你是说用@Html.Partial引入页面时,可以让引入的页面访问控制器?返回绑定的模型来填充页面?[/quote]当然可以啊,@Html.Partial这个也是分部加载,你用ajax不是一样的吗?还是我们没理解 你的需求?
d383137359 2018-08-24
  • 打赏
  • 举报
回复
引用 3 楼 hanjun0612 的回复:
你说的这个好像使用iframe就可以了饿

时常使用<script>$("#test").load("@Url.Action("page1")");</script>嵌入页面,iframe还不常用
d383137359 2018-08-24
  • 打赏
  • 举报
回复
引用 2 楼 CXJ0062008 的回复:
当然,用你那个方法了是可以的,估计你那里写错了,这要看你的代码才知道 问题


你是说用@Html.Partial引入页面时,可以让引入的页面访问控制器?返回绑定的模型来填充页面?
d383137359 2018-08-24
  • 打赏
  • 举报
回复
引用 2 楼 CXJ0062008 的回复:
[quote=引用 1 楼 mirror030 的回复:]
这个使用AJAX,但并不需要大量JS
只需要发一个请求,得到控制器返回的页面就行,这个页面就是你想刷新的那个部分页.
,是的,如兄台所说的就好了,如 $.ajax({
type: "post",
url: "/区域/控制器名称/方法名称",
dataType: "html",
success: function (data) {
$("#要填充的DIV").html(data);
}
});当然,用你那个方法了是可以的,估计你那里写错了,这要看你的代码才知道 问题[/quote]

如果我填充的是表格呢,这就一个请求,我上面不是说了,有多个局部要更新,都不希望重复组织数据,另外我不是讨论写多少js才叫量大的问题,我是想用其他方法,比如我认为mvc 的模型绑定 比写js 更便便捷,一句js代码都不用写啊,只是不希望用$.post $.get $.ajax这种js请求方式而已

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧