我正在看到其他方法,例如AdditionalValues,但我想知道是否有可能最终在一个场景中你可以向模板视图中可用的ModelMetadata对象添加新属性.
例如,您可以:
@ViewData.ModelMetadata.MvvmBound
Run Code Online (Sandbox Code Playgroud)
我想在编辑器和显示模板中使用它来将MVVM属性添加到正在呈现的HTML元素中.
我完全迷失了,但到目前为止,这是我的努力:
public class MyModelMetaDataProvider : DataAnnotationsModelMetadataProvider
{
protected new MyModelMetaData CreateMetadata(IEnumerable<Attribute> attributes, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName)
{
ModelMetadata modelMetaData = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);
MyModelMetaData myMetaData = (MyModelMetaData)modelMetaData;
return myMetaData;
}
}
public class MyModelMetaData: ModelMetadata
{
public MyModelMetaData(ModelMetadataProvider provider, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName)
: base(provider, containerType, modelAccessor, modelType, propertyName)
{
}
public int MyProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后在全球的asax我使用:
ModelMetadataProviders.Current =new MyModelMetaDataProvider();
Run Code Online (Sandbox Code Playgroud)
问题是如果我尝试在视图中使用MyProperty它无法识别,我预期,因为VS不知道自定义ModelMetadata类.
我甚至不确定这是可能的吗?
asp.net-mvc modelmetadata modelmetadataprovider asp.net-mvc-4
我花了一些时间开发 PowerShell 项目,以自动构建基于 @Nrwl NX monorepos 的 C# 和 Angular 应用程序。在此之前一切工作正常,但当我尝试一个简单的:
nx build --baseHref=/apps/admin/ --deployUrl=/apps/admin/ --watch
Run Code Online (Sandbox Code Playgroud)
我现在得到错误
ENOENT: "no such file or directory, open 'd:\Projects\TheApp\Source\Angular.Apps/apps/the-client/src/environments/environment.prod.ts'"
Run Code Online (Sandbox Code Playgroud)
问题:我认为它正在寻找environment.prod.ts,因为replaceFile部分,但由于我是在本地开发中构建的,所以我认为它根本不应该进行替换。
另外:即使我正在构建 APP-ADMIN 应用程序,它也在寻找 APP-CLIENT 环境文件。
在我的构建自动化项目中可能导致问题的一些点:
我重命名了workspace.json 中的所有应用程序配置。因此,例如“生产”变成了“生产客户端1”,它在替换过程中使用了environment.prod.client1.ts文件
“fileReplacements”:[
{
“替换”:“apps/app-admin/src/environments/environment.ts”,
“with”:“apps/app-admin/src/environments/environment.prod.orgb.ts”}
],
在上面的1)中,我提到了文件environment.prod.client1.ts,它最初是environment.prod.ts文件。由于错误提到它找不到此文件,因此问题可能出在此处,或者我应该更改一些额外的配置才能使其正常工作?
最后说明:我的 powershell cmdlet 调用以下命令:
nx build portfolio-client --deleteOutputPath=false --baseHref=/apps/client/ --deployUrl=/apps/client/ --configuration=staging-client-client1
Run Code Online (Sandbox Code Playgroud)
这就像管理应用程序和每个客户端的变体一样具有魅力。只有在开发构建期间我才会遇到这些问题。
编辑1:
我在我拥有的两个“应用程序”类型项目中为environment.prod.ts和environment.staging.ts创建了虚拟文件,这解决了问题。这些文件是空白的,所以不确定为什么为 Dev/local 构建不只是处理environment.ts 文件
有人知道如何以编程方式设置页面的标题和描述吗?
我已经从Telerik实现了这个解决方案:
public class InternalPageCustom : InternalPage
{
public InternalPageCustom()
{
}
protected override void SetTitle(Telerik.Cms.ICmsPage page)
{
//base.SetTitle(page);
this.Title = "somevalue";
}
}
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,基础对象InternalPage仅提供属性Title,对于其他元字段(如描述或关键字)没有任何作用?
雅克
是否有一种有效的方式在不同项目之间共享视觉资产?
这将包括图像,CSS和JavaScript.
我查看了以下Stack Overflow问题,似乎没有回答这个问题:
我们使用TFS,不确定是否可以使用我们可以使用的东西?
在我的 mvc 应用程序的头部部分,我引用了 JQuery 和 JQuery UI,如下所示:
<script src="/MyPortal/Scripts/modernizr-2.6.2.js">
<script src="/MyPortal/Scripts/jquery-1.8.2.js">
<script src="/MyPortal/Scripts/jquery-ui-1.8.24.js">
etc.
Run Code Online (Sandbox Code Playgroud)
然后我尝试了简单的 jQuery UI 小部件,例如按钮和按钮集,如下所示:
$("#viewSwitch").buttonset();
Run Code Online (Sandbox Code Playgroud)
或者
$("#myButton").button();
Run Code Online (Sandbox Code Playgroud)
Firebug 总是报告:
TypeError: $(...).buttonset is not a function
Run Code Online (Sandbox Code Playgroud)
我已经在 Firebug 中仔细检查了脚本文件是否正确加载。jQuery 没有问题。
在 Firebug 的命令窗口中,页面加载完成且没有错误后,我输入:
jQuery.ui
Run Code Online (Sandbox Code Playgroud)
它返回为未定义。
不确定还需要检查或排除哪些问题?
这将是我的第一个完全响应的网站,所以我环顾四周,发现帖子底部的基本媒体查询,似乎以某种方式或形式匹配大多数设备.
我从任何这些查询之外的代码开始(即针对普通桌面).然后我处理了移动设备的第一个媒体查询,但第二个规则对我没有意义(即大于321px的所有内容).
这似乎意味着一切都超过321到768,这是下一个规则.我想我误解了这是如何工作的?任何人都可以用一种简单的方式解释这个吗?我开始认为我的所有CSS代码都应该在这些媒体查询中,并且我应该先从移动版本开始,然后随着分辨率变大逐渐扩展它?
/* Smartphones (portrait) ----------- */
@media only screen and (max-width : 320px)
{
}
/* Smartphones (landscape) ----------- */
@media only screen and (min-width : 321px) and (orientation: landscape)
{
}
/* iPads (landscape) ----------- */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape)
{
}
/* iPads (portrait) ----------- */
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait)
{
}
/* Desktops …Run Code Online (Sandbox Code Playgroud) 使用这样的文字符号声明一个对象:
var person = {
name: "",
gender: "",
age: 0
}
Run Code Online (Sandbox Code Playgroud)
与像这样的构造函数函数:
var person = function(name, gender, age)
{
this.name = name;
this.gender = gender;
this.age = age;
}
Run Code Online (Sandbox Code Playgroud)
第一个问题:
当这样声明时,即使它们还没有“实例化”,它们是否都占用了相等的内存量?(或者这个概念不适用于 JavaScript)
第二个问题:
这两个都可以正确更新如下:
var john = new person();
Run Code Online (Sandbox Code Playgroud) 使用EPPlus,我知道您可以如下设置单个单元格或一系列单元格的背景色:
ws.Cells["A1:B1"].Style.Fill.PatternType = ExcelFillStyle.Solid;
ws.Cells["A1:B1"].Style.Fill.BackgroundColor.SetColor(Color.White);
Run Code Online (Sandbox Code Playgroud)
有什么方法可以设置整个工作表的背景色吗?还是这只是设置范围很广的单元格的一种情况?
因此,例如,我可以做:
ws.Cells["A1:AZ10000"].Style.Fill.PatternType = ExcelFillStyle.Solid;
ws.Cells["A1:AZ10000"].Style.Fill.BackgroundColor.SetColor(Color.White);
Run Code Online (Sandbox Code Playgroud)
我不确定这样做是否有性能问题?我用“ A1:ZZ100000”进行了尝试,它只是挂了。
我最近刚刚开始学习正则表达式,所以我还不确定孔问题的几个方面。
现在,我的网页读取 URL 将其分成几个部分,并且仅使用某些部分进行处理:例如 1) http://mycontoso.com/products/luggage/selloBag 例如 2) http://mycontoso.com/products /行李/selloBag.sf404.aspx
由于某种原因,Sitefinity 为我们提供了两种可能性,这很好,但我需要的只是“luggage/selloBag”中的实际产品详细信息
我当前的正则表达式是:"(.*)(map-search)(\/)(.*)(\.sf404\.aspx)",我将其与替换语句结合起来并提取组 4(或 $4)的内容,这很好,但对于示例 2 不起作用。
所以问题是:是否可以用正则表达式匹配两种可能性,其中字符串的一部分可能存在或可能不存在,然后仍然引用您实际想要使用其值的组?
asp.net-mvc ×2
angular ×1
c# ×1
css ×1
epplus ×1
javascript ×1
jquery ×1
jquery-ui ×1
monorepo ×1
nrwl-nx ×1
regex ×1
sitefinity ×1
sql ×1
sql-server ×1
t-sql ×1
tfs ×1