我在ASP.NET MVC项目中使用了一个母版页.该母版页需要一些ViewData,它会在每个页面上显示.
如果我没有在我的控制器中设置此ViewData键,则会收到无法找到它的错误.但是,我不想在每个控制器中设置ViewData(我不想ViewData["foo"] = GetFoo();
在每个控制器中说).
所以,我正在考虑在基本控制器中设置它,并让每个控制器继承自这个基本控制器.在基本控制器默认构造函数中,我设置了ViewData.我在这里找到了类似的方法:http://www.asp.net/learn/MVC/tutorial-13-cs.aspx.到目前为止一切都很好,这可行...但问题是这些数据来自某个地方的数据库.
现在,当我想对我的控制器进行单元测试时,从基本控制器继承的控制器调用它的默认构造函数.在默认构造函数中,我初始化我的存储库类以从数据库中获取此数据.结果:我的单元测试失败,因为它无法访问数据(我当然不希望他们访问这些数据).
我也不想将正确的Repository(或DataContext,无论你怎么命名)类传递给每个控制器,而控制器又将它传递给默认控制器,我可以用我的单元测试来模拟它.控制器又依赖于其他存储库类,我最终会将多个参数传递给构造函数.为我的感觉工作太多,或者我错了?还有其他解决方案吗?
我已经尝试过使用StructureMap,但最后我觉得这不会解决我的问题,因为每个控制器仍然需要调用基础构造函数来初始化存储库类,所以我不能模拟它.
这是一个类似的问题,但我发现没有给出令人满意的答案.我能否以一种简洁的方式解决这个问题,也许使用StructureMap作为解决方案?或者我应该把它吸干并将存储库传递给每个控制器并再次传递给基本控制器?再一次,对于如此简单的事情感觉就像这么多工作.谢谢!
为什么这不能在Delphi 2009中编译?
unit VistaFolders;
interface
uses Windows, ShellAPI, ShlObj;
type
KNOWNFOLDERID = TGuid;
const
FOLDERID_ProgramData: KNOWNFOLDERID =
'{374DE290-123F-4565-9164-39C4925E467B}'; // downloads folder
var
SHGetKnownFolderPathFunc: function( const rfid: KNOWNFOLDERID;
dwFlags: DWORD; hToken: THandle; var ppszPath: PWideChar ): HResult; stdcall;
SHGetKnownFolderIDListFunc: function( const rfid: KNOWNFOLDERID;
dwFlags: DWORD; hToken: THandle; var ppidl: PItemIDList ): HResult; stdcall;
function GetDownloadsFolderPath: string;
implementation
uses ActiveX;
function PathFromIDList( Pidl: ShlObj.PItemIdList ): string;
var
Path: array[ 0..MAX_PATH ] of Char;
begin
if SHGetPathFromIDList( Pidl, Path ) then
Result := …
Run Code Online (Sandbox Code Playgroud) 任何人都可以解释为什么Server.Execute()要求我呈现的UserControls包含<form>
标签(或者,我正在做错的是使Server.Execute()在我的UserControls中需要表单标签)?
我创建了一个ASMX服务,通过JQuery + JSON动态加载UserControls,如下所示:
ControlService.asmx
<%@ WebService Language="C#" CodeBehind="ControlService.asmx.cs" Class="ManagementConcepts.WebServices.ControlService" %>
Run Code Online (Sandbox Code Playgroud)
ControlService.cs
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class ControlService : System.Web.Services.WebService
{
private string GetControl(String controlName, String ClassId)
{
Page page = new Page();
UserControl ctl = (UserControl)page.LoadControl(controlName);
page.Controls.Add(ctl);
StringWriter writer = new StringWriter();
HttpContext.Current.Server.Execute(page, writer, false);
return writer.ToString();
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetSimpleControl(string ClassId)
{
return GetControl("SimpleControl.ascx", ClassId);
}
}
Run Code Online (Sandbox Code Playgroud)
我通过以下JQuery将控件加载到一个页面中,用来自服务返回的HTML替换id为ContentPlaceholder:
JQueryControlLoadExample.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JQueryControlLoadExample.aspx.cs" Inherits="ControlService_Prototype._Default" %>
<!DOCTYPE html …
Run Code Online (Sandbox Code Playgroud) 一般来说,
使用VBA,如何确定当前用户Application Data文件夹的位置?
FileSystemObjects特殊文件夹只知道3个文件夹
具体来说,我需要Word宏将文件复制到Application Data文件夹下的文件夹.
例如,在VB.Net中我可以My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData
用来做这件事
我经常遇到这样一种场景,即"权力"需要在网站上的多个位置精确复制页面.我没有实际复制内容,而是覆盖突出显示的导航中的部分,然后包含页面.最后一页看起来像这样:
<?php
$top_nav_item_id = 'teen';
include('../interests/teacher-resources.php');
?>
Run Code Online (Sandbox Code Playgroud)
这通常有效.我试图复制这个博客类别,在wordpress中完成.无论我做什么,我似乎得到的只是一个空白页.我已经尝试了以下所有行:
<?php
include('../blog/index.php');
include('../blog/type/teen/index.php');
include('../blog/type/teen/');
include('../blog/');
?>
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法?这是一个URL重写的东西吗?我是否必须包含该特定类别的模板文件?
任何帮助表示赞赏.
我在一个usercontrol中有一个带有自定义面板的itemscontrol.usercontrols大小仅受父窗口大小的约束.
<UserControl>
<Grid>
<Border BorderBrush="DarkGray" BorderThickness="5">
<ItemsControl ItemsSource="{Binding ActiveGame.Grid.CellsFlat}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Wpf:HexagonalPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Border>
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
我现在想要仅在生成的面板周围绘制边框.但相反,它是围绕整个网格绘制的,或者可能更精确地与网格大小相同.
我想我在HexagonalPanel上正确实现了MeasureOverride,它返回了正确的大小,所以它不应该绘制那个大小的边框吗?
我错过了什么?
我正在努力研究聚合和聚合根.我有一个自然聚合根,适用于大约60%的用户请求.即这些请求自然适用于聚合根.
在我的聚合中,我有另一个实体,它只能作为聚合根的成员存在.但是,用户将被告知这个其他实体对象.从概念上讲,用户有时可以直接对此非聚合根对象进行操作.
所以,我想我有几个选择:
请注意,顶级聚合根将包含此其他实体的集合.
例:
主要集合根:汽车
第二个实体:座位(根据类型,汽车有2个或4个座位).在我的域名中,座位只能作为汽车的一部分存在.
域中的大多数操作都在Car级别.所以这将是聚合根的一个很好的候选者.然而,(我在这里努力争取示例),一些操作将在座位级别,例如SpillCoffee,ChangeFabric,Clean ....
座椅和汽车都可以是聚合根?或者我应该始终从汽车开始?
谢谢
有谁知道如何将c数组转换为c中的LPCTSTR?
编辑:
为了更多参考,我需要在字符串中添加一个整数,然后将该字符串转换为LPCTSTR,以获取windows函数CreateFile()的第一个参数.
这是我目前正在使用的硬编码示例,但我需要能够传入任何数字以用作端口号.
CreateFile(_T("\\\\.\\COM11")... //hardcoded for com port 11
Run Code Online (Sandbox Code Playgroud)
以下是我尝试过的几件事,我相信这篇文章的下两个答案包括以下建议.不幸的是,他们没有工作.如果有人能指出我做错了什么并且可能解决我的问题,我会很感激.
所有这些示例都假设portNum是一个已经分配了有效值的int
char portName[12] = { 0 };
sprintf_s( portName, sizeof( portName ), "\\\\.\\COM%i", portNum );
CreateFile(portName...
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用LPCSTR的#1值得它的价值......
LPCSTR SomeFunction(LPCSTR aString) {
return aString;
}
main() {
char portName[12] = { 0 };
sprintf_s( portName, sizeof( portName ), "\\\\.\\COM%i", portNum );
LPCSTR lpPortName = SomeFunction(portName);
CreateFile(lpPortName...
Run Code Online (Sandbox Code Playgroud)
const char * portName = "";
sprintf_s( portName, sizeof( portName ), "\\\\.\\COM%i", portNum );
LPCSTR lpPortName = portName;
CreateFile(lpPortName...
Run Code Online (Sandbox Code Playgroud) 我有两个共享许多类的Cairngorm MVC Flex应用程序(同一个应用程序的完整版和精简版).我已将这些类放入一个编译为SWC的Flex库项目中.两个应用程序都使用一些静态String常量.现在,我将它们存储在ModelLocator中:
package model
{
[Bindable]
public class ModelLocator
{
public static var __instance:ModelLocator = null;
public static const SUCCESS:String = "success";
public static const FAILURE:String = "failure";
public static const RUNNING:String = "running";
...
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎不是存储这些常量的最佳位置,特别是现在它们被两个应用程序使用,并且我已经将每个应用程序设置为拥有自己的ModelLocator类.另外,这不是ModelLocator类的目的.
在我的共享库中存储这些常量的好方法是什么?
我应该像这样创建一个类吗?:
package
{
[Bindable]
public class Constants
{
public static const SUCCESS:String = "success";
public static const FAILURE:String = "failure";
public static const RUNNING:String = "running";
}
}
Run Code Online (Sandbox Code Playgroud)
然后像这样引用它:
if (value == Constant.SUCCESS)
...
Run Code Online (Sandbox Code Playgroud) windows ×2
aggregates ×1
apache-flex ×1
arrays ×1
asmx ×1
asp.net ×1
asp.net-mvc ×1
border ×1
c ×1
c# ×1
cairngorm ×1
char ×1
constants ×1
controller ×1
delphi ×1
delphi-2009 ×1
filesystems ×1
hash ×1
include ×1
itemscontrol ×1
master-pages ×1
md5 ×1
php ×1
python ×1
word-vba ×1
wordpress ×1
wpf ×1
xaml ×1