你如何处理避免ViewBag的问题,因为它具有动态错误的风险,但也避免每次都要填充新的ViewModel并将其传回视图.例如,我不希望必须更改后续内容以暴露ViewBag中通常填充的常见数据.
[HttpGet]
void Index()
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
至
[HttpGet]
void Index()
{
var messages = new MessageCollection();
messages.AddError("Uh oh!");
return View(messages);
}
Run Code Online (Sandbox Code Playgroud)
在管道中我将添加一个像ViewBag这样的属性,它是自定义的和强类型的,但它在Controller和View中都有优雅的外观.当我不需要特定的ViewModel时,我宁愿这样做......
[HttpGet]
void Index()
{
Messages.AddError("Uh oh!");
return View();
}
Run Code Online (Sandbox Code Playgroud)
而在视图方面,而不是@((IMessageCollection)ViewBag.Messages).Errors id更像是@ Messages.Errors,它是强类型的并且随处可用.另外,我不想只是在Razor视图顶部的代码块中将其抛出.
在WebForms中,我会做一些事情,比如把它作为一个基页,然后有一个usercontrol,可以根据需要隐藏或显示在页面上.由于Controller与View分离,我不确定如何复制类似的行为.
这是可能的还是最好的设计方法是什么?
谢谢,斯科特
我已经看过很多关于如何更改ASP.NET MVC项目的默认路径的文章,因此您可以通过扩展RazorViewEngine并指定新的路径格式来重定位或重命名Controllers,Models和Views文件夹.
到目前为止,这很好用,但副作用是它已经打破了"Go to View"或"Add View ..."的Visual Studio快捷方式.
有关是否可以自定义这些快捷方式选项以了解我指定的新路径的任何想法?
提前致谢! - 斯科特
我正在尝试利用 iTextSharp(该产品非常新)从 PDF 文档中删除超链接。有谁知道这是否可能?我一直在挖掘 API,但还没有找到一种明显的方法来做到这一点。
我的问题是我正在对一个系统进行维护,该系统在 iframe 中嵌入了 PDF,并且 PDF 中的链接导致用户最终在 iframe 中而不是在新窗口或选项卡中浏览网站,所以我正在寻找一种在请求时终止 PDF 中链接的方法。
提前致谢,斯科特
architecture ×1
asp.net-mvc ×1
c# ×1
hyperlink ×1
itextsharp ×1
pdf ×1
shortcuts ×1
viewbag ×1
viewmodel ×1