我正忙着制作我的 ASP.NET 网络应用程序。
我将首先解释我的应用程序流程。
- 用户提交表单
- 表单数据发布到控制器
- 控制器使用标签生成器生成包含数字的表,并将其作为 mvcHtmlString 返回。
此表中的每个数字都由锚标记 (a) 包围。单击此数字时,我想打开一个模式窗口,显示与单击的数字相关的数据。单击此数字当前具有 url.action 作为 href,因此它会跳转到我的控制器,并将该数字传递给控制器。
显示模态不是问题,因为我可以将数据切换和数据目标传递到我的锚标记中,但我想显示控制器在其正文中返回的数据。
我目前正在做的是在我看来,它包含我所做的形式
@{Html.RenderPartial("_Details");}
_Details
包含整个模态代码:
<div class="modal fade" id="competenceModal" tabindex="-1" role="dialog" aria-labelledby="competenceModal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<p>Competence details</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
返回到视图的锚标记包含以下表单:
UrlHelper url = new UrlHelper(HttpContext.Request.RequestContext);
var url2 = url.Action("LevelDetails", "Knowledge", new { level = level.Value });
var anchor = new TagBuilder("a");
anchor.Attributes.Add("href", url2);
anchor.Attributes.Add("data-target", "#competenceModal");
anchor.Attributes.Add("data-toggle", "modal");
这正确地访问了我的控制器,但我最大的问题是:
是否可以使控制器返回数据(例如mvcHtmlString
或任何其他内容)并将其放入模式窗口的正文中?如果是这样,最好的方法是什么?
我想建议你遵循以下事情,
1. 在控制器中构建模式链接时使用 data-id 字段。比如数据 id="1"。
2. 在您的分部视图中,使用此 id 调用 ajax 方法,如"getData"
3. 从"getData"以 json 格式返回您的数据。
4. 现在使用 jquery 将返回的数据绑定到表单控件。
希望这对您有所帮助!