我目前正在尝试使用ASP.NET MVC 3 RC动态加载区域.我已经看到它写在许多地方,这不是那些区域的目的,并且(至少预MVC 2)不可能,例如在这里说.
但是还是!它应该可以让它工作,对吧?我创建了一个解决方案,添加了一个MVC 3项目,添加了一个区域和一些内容.一切都运作良好.现在我创建了一个新的类库项目(在同一个解决方案中),从MVC项目添加了对它的引用,并开始将与区域相关的部分移动到库中.将库项目的输出目录更改为MVC项目的area-folder,并确保将Views及其web.config复制到output-folder.
在阅读了很多关于你如何不能拥有外部区域之后,这有点令人惊讶.真的没问题!当我删除项目之间的引用,而不是在代码中加载库时,问题就开始了.(在打电话之前AreaRegistration.RegisterAllAreas().)现在它不起作用.完全没有.
我一直在寻找MVC 3的源代码,问题似乎BuildManager.GetReferencedAssemblies()是用于让程序集寻找实现AreaRegistration.
现在,我不是百分之百地确定这一点,但似乎这个方法只查看在编译时存在/引用的程序集,有人可以确认这是否实际上是这样的?
我通过这个调试了,而且方法调用确实没有找到我在调用它之前加载的程序集.这可能是因为我可能错过的其他东西......有什么想法吗?
好的我有这个项目我在WPF(Visual C#2010 Express)上工作,我有几个DatePickers绑定到DateTime属性.现在如果我打开"选择器"并立即开始更换几个月就没有问题了.但是,如果我选择日期然后尝试更改月份,则会出现以下异常:
元素不存在或虚拟化; 如果支持,请使用VirtualizedItem Pattern.
堆栈跟踪仅显示:
[外部代码]
我的方法打开包含DatePickers的对话框(除其他外)
[外部代码]
如果属性可以为空或者似乎没有区别,并且无法在上述异常的任何主要搜索引擎上找到单个结果.
XAML
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Grid>
<DatePicker SelectedDate="{Binding TheDate}"
x:Name="datePicker1" />
<Button Content="Button"
x:Name="button1"
Click="button1_Click" />
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
代码背后
class TheClass
{
public DateTime TheDate { get; set; }
}
public MainWindow()
{
theClass = new TheClass();
theClass.TheDate = DateTime.Now;
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.DataContext = theClass;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
System.Windows.MessageBox.Show(theClass.TheDate.ToString());
}
Run Code Online (Sandbox Code Playgroud)
有没有人见过这种行为或有任何其他想法?我离WPF专家很远,老实说不知道是什么导致这个或从哪里开始寻找..
美好的一天,
我有Html.DropDownListFor这个问题我似乎无法解决..它给了我正确的选项数,如果我在代码中执行断点,它应该呈现列表,"SelectItemList"对象包含具有正确值的项目,但它吐出的实际HTML如下:
<select id="Reason_ReasonId" name="Reason.ReasonId"><option>System.Web.Mvc.SelectListItem</option>
<option>System.Web.Mvc.SelectListItem</option>
<option>System.Web.Mvc.SelectListItem</option>
<option>System.Web.Mvc.SelectListItem</option>
<option>System.Web.Mvc.SelectListItem</option>
<option>System.Web.Mvc.SelectListItem</option>
</select>
Run Code Online (Sandbox Code Playgroud)
该模块包含:
public SelectList ReasonList
{
get
{
SelectList selectList;
List<SelectListItem> selectItems;
using (var db = new EscalationDataContext())
{
var reasons =
db.Reasons
.OrderBy(r => r.Reason1)
.Select(r => new SelectListItem
{
Value = r.ReasonId.ToString(),
Text = r.Reason1
});
selectItems = reasons.ToList();
selectList = new SelectList(selectItems);
}
return selectList;
}
}
Run Code Online (Sandbox Code Playgroud)
控制器只是创建一个默认实例,并设置默认值:
public ActionResult Create()
{
EscalationModel model = new EscalationModel
{
Reason = new Reason { ReasonId = new Guid("598c28c2-877a-44fa-9834-3241c5ee9355"), …Run Code Online (Sandbox Code Playgroud) 好的我有这个脚本,我用CSV读取(从XLS转换)并将ID字段和日期字段保存到数组中.像这样:
New-Object PSObject -prop @{
TheId = $_."The ID";
TheDate = [DateTime]::Parse($_."The Date")
}
Run Code Online (Sandbox Code Playgroud)
它就像一个魅力,我得到了一个很好的对象数组,上面有两个属性.现在,我想得到每天的项目数,而不必foreach进行循环等.它有更好的解决方案吗?(注意,它也TheDate包含不同的时间,我想忽略它.)
我刚刚开始草拟基于Web的系统的基础,我希望管理员可以通过Controller或Model来限制访问.我的问题是,我无法决定我应该选择哪一个(或两个?).有任何想法吗?优点缺点?
首先,我倾向于在控制器中执行此操作,因为他们"控制"系统的流程.但是,认为访问应该受到它访问的数据的限制,而不是系统的逻辑部分,我觉得我真的应该选择模型.
现在我无法决定..我已经来回晃动了几天而根本没有真正前进,所以现在我转向你,哦伟大的互联网,希望得到答案!
我的实现是在C#/ ASP.NET/MVC2中,但我仍在"理论上"工作,所以它不是真正的框架特定..