使用MVC 3和Razor视图引擎.我有这个观点:
@model dynamic
@{
var products = (List<ListItemBaseModel>)Model.Products;
var threshold = (int)(Model.Threshold ?? 1);
var id = Guid.NewGuid().ToString();
}
Run Code Online (Sandbox Code Playgroud)
使用此代码从另一个视图调用它:
@Html.Partial("PartialViewName", new { Products = Model, Threshold = 5 })
Run Code Online (Sandbox Code Playgroud)
在两个视图中,当我调试它们并观看模型时,它似乎包含正确的对象.当我执行代码时,我在"var products ="行上收到错误说:
'object'不包含'Products'的定义
任何人都可以向我解释为什么我会收到这个错误?再次,当我在调试模式下观察Model对象时,它看起来很好(具有2个属性:Products和Threshold)
我正在寻找一个在MVC中运行的动态占位符解决方案.对于WebForms,至少有两个关于此"模式"的描述:
我还发现这个博客解释了如何使用MVC:
首先,我尝试使用MVC blogpost(SitecoreHelper的扩展)中的技术实现Techphoria的方法(使用GUID),并且我还尝试实现最后描述的方法(使用增量为Column_1,Column_2等的数字后缀).
通过我尝试的所有变化,我没有成功创建一个可行的解决方案.我的占位符没有正确命名(我最终得到了奇怪的占位符结构,或占位符重复自己).
如果不了解我的尝试细节,我想知道是否有其他人准备好了我可以使用的工作解决方案.
如果我找不到已经有效的解决方案,我会更详细地描述我的问题,看看我是否可以使用它.
我正在使用.NET Web应用程序,该应用程序使用大约20到30个表的SQL Server数据库.大多数表将作为类包含在.NET解决方案中.我编写了自己的数据访问层来读取对象,并将它们写入数据库.整个过程只包含几个类,很少的代码行使用泛型和反射来找出要使用的SQL和参数.现在,这样的事情可以通过使用NHibernate(或similair框架)完成,而一些同事声称我不使用它是愚蠢的.我不使用它的主要理由是我希望能够最大限度地控制我的应用程序,确切地知道所有事情的作用以及一切是如何工作的,即使这花费了我更多的开发时间.我也不喜欢我必须将我的数据库映射到XML文件中(我自己的解决方案让我将它映射到实体类文件中).
所以,我想听到你的意思是,在这种情况下不使用NHibernate真的很蠢吗?我真的无知或使用我自己的解决方案是不是一个奇怪的想法?
过去几周我一直在研究(旧)3D渲染技术,并认为我现在对Doom中3D渲染的工作方式有了一个公平的理解.它使用光线投射来渲染3D场景,对对象使用精灵,因此不是"真正的"3D.它也不允许真正的上/下,只能通过Y剪切.
Quake是ID的第一个"真正的"3D引擎,具有可以从不同角度查看的对象,并允许向上和向下查看.
现在,在研究这些技术时,我听到了很多"真正的"3D,但我无法清楚地解释这个真正的3D意味着什么.Quake渲染与Doom渲染有何不同?
Quake世界是否使用3D顶点并且它们都是投影而不是用于交叉点的光线投射?
我很想听到有关差异的明确解释!
PS我知道Quake的源代码是可用的,但是id软件的FTP已经停机数周了,我在其他任何地方都找不到它.如果有人知道在哪里可以找到它,请告诉我.
我们有一个多站点解决方案(站点1和站点2),我需要能够确定我们获取URL的项目(在LinkProvider中,是自定义的)是否属于当前上下文站点(Sitecore.Context.Site),或者是不同网站的一部分.有没有办法做到这一点?
基本上,我们只需要能够找出该项目与哪个站点相关联.我们可以在该值与当前上下文站点之间进行比较.
我在构建适用于iOS的Xamarin解决方案时遇到此错误.
我只启用了链接SDK程序集.
奇怪的是,当我为模拟器构建它时,它工作得很好,但是当我为真实设备构建时,它会产生这个错误.
MTOUCH: error MT2002: Failed to resolve "System.Void
System.Security.Cryptography.SHA1Cng::.ctor()" reference from
"System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
Run Code Online (Sandbox Code Playgroud)
在我的代码中没有我引用System.Security.Cryptography.
当我禁用链接程序集或启用链接所有程序集时,它可以工作,但链接all将导致Unity IoC失败并禁用所有链接,从而导致应用程序的文件大小更大.
我正在为.NET版本4.5.2构建目标OS 7.1(当我更改它时没有区别)并且安装了Xamarin的所有更新.
更新:
我可以确认我的iOS项目是指System.Core版本2.0.5.0
请参阅下面的屏幕截图.
但是,我确实有一个引用的PCL项目.这可能以某种方式导致问题吗?

更新:
原来有一个我正在引用的库,HashLib,我认为它是PCL,但实际上并非如此.
在HashLib中,对System.Core中的某些内容进行了调用,导致链接器失败.
我现在从HashLib中提取了我需要的功能,并将其编译成一个单独的PCL项目,这解决了我的链接器问题.
我正在尝试在我的项目中使用 Visual Studio Code 的 C# 开发工具包扩展。
我创建了两个ASP.NET Core Web API项目。
它们都可以成功构建。但是,当加载我的工作区时,解决方案资源管理器将为每个项目给出错误:A compatible .NET SDK was not found.
查看输出窗口,看起来它找到了 SDK,并且我也能够很好地构建这两个项目。
看起来这只是解决方案资源管理器的问题。
我还尝试添加不同的项目类型(类库、控制台应用程序),但它们都给出相同的错误。
有人知道这里有什么问题吗?
这是我正在查看的屏幕截图:
我在VS2012项目文件中使用Pre-/ Post-build事件来执行构建任务.这在本地工作得非常好,但是从TFS 2012 Build Server运行它时遇到了问题.
在本地$(TargetDir),每个项目都设置为自己的/bin文件夹.
然而,在构建服务器上,它被设置为/bin解决方案根文件夹之外的单个文件夹,在该文件夹中合并所有构建的二进制文件.
这根本不是我想要的!
我只是希望构建服务器的行为与我的VS2012构建相同.
构建模板中似乎没有任何允许我更改此设置的设置.
任何人都可以告诉我如何使构建服务器将其二进制文件输出到/bin每个项目的单独文件夹中?
(仅供参考,构建服务器设置为构建.sln文件,而不是其他一些MSBuild脚本.)
在深入研究我的解释之前,我将总结一下我的问题:
如何为用户(编辑)提供用户友好的可能性,以便为标准值上预设的子布局选择数据源项?
我的情况如下:
我有一个页面模板,标准值上有预定义的布局.让我们说布局包括:
此子布局在我的页面模板上预定义,但也可以使用页面编辑器放置在占位符中.它需要有一个定义Title和Body值的数据源项.
现在,如果用户使用页面编辑器将此子布局添加到占位符,他将获得一个很好的界面来选择或创建数据源项(参见屏幕截图).

但是,如果子布局是在标准值上预定义的,那么它将在没有数据源的情况下添加(我不能在标准值中预先设置数据源,因为到那时它仍然是未知的).
那时似乎没有办法找到用于选择或创建数据源项的好界面.
理想情况下,我希望能够在我的模板中添加一个字段,该字段可以容纳用户可以使用nice界面选择/创建的数据源项.我查看了数据源字段类型,这可能是另一种选择,但它仍然不是我想要的.
请记住,内容子布局只是一个例子.我明白,在那个特定的情况下,我可以通过总是向模板中添加一个标题/正文字段来解决它,如果没有数据源,则保存值,但对于我的现实世界问题是不够的.
我对页面编辑器没有很多经验(使用新的工作方式)所以我想就这个主题得到一些建议.
我无法让Visual Studio 2012识别'sc'tagPrefix.我的web.config包含通常的行:
<add tagPrefix="sc" namespace="Sitecore.Web.UI.WebControls"
assembly="Sitecore.Kernel"/>
Run Code Online (Sandbox Code Playgroud)
但是Unrecognized tag prefix or device filter 'sc'当我尝试<sc />向我的页面或用户控件添加标记时,我会不断收到消息.
如果我在Visual Studio 2010中打开相同的解决方案,它可以正常工作.
有任何想法吗?
我可以通过在Repeater中访问来访问单行文本字段类型:
<sc:FieldRenderer ID="frTitle" runat="server"
FieldName="Title"
Item="<%# (Sitecore.Data.Items.Item)Container.DataItem %>" />
Run Code Online (Sandbox Code Playgroud)
但是如何访问项目中定义的下拉列表字段类型选择值.
谢谢
首先,我查看了其他所有堆栈站点,我似乎找不到一个非常合适的地方来问这个问题.这是一个相当普遍的问题,但基本上,我想知道Sitecore是否主要针对企业用户?
我已经对Drupal做了一点,因为它是开源的,当然你可以在任何共享主机上安装它(至少是LAMP,但我猜Windows也是如此).我似乎找不到很多网站为Sitecore广告托管除了SiteCore托管网站上的有限数量.
我看到价格的唯一价格往往比从共享主机获得的价格更高.IE,每月100美元以上,典型LAMP共享主机约10-20美元.
我即将在我的公司工作一些Sitecore工作,并想知道我是否能够在工作之外自己玩Sitecore,但看起来这是你不能玩的东西,除非你有一个实际的许可证和主机,除非有一些测试环境可以设置在你的本地盒子上,或者这是不可行的?
正如你所看到的,这些都是相当基本的问题,但我在搜索时找不到好的直接答案,所以任何好的基础入门或信息都会很棒!
sitecore ×6
c# ×2
sitecore6 ×2
.net ×1
.net-core ×1
3d ×1
asp.net ×1
asp.net-mvc ×1
hosting ×1
ios ×1
licensing ×1
nhibernate ×1
quake ×1
raycasting ×1
razor ×1
sitecore-mvc ×1
tagprefix ×1
tfs2012 ×1
tfsbuild ×1
xamarin ×1
xamarin.ios ×1