所以我对Visual Studio格式化剃刀代码的方式有了一定的了解.我一直有一些视觉工作室的问题以及它如何格式化UI代码,它似乎总是做一个真正的超级糟糕的工作,业界不想遵循.
所以这个例子看起来真的很愚蠢.我正在试图弄清楚是否有mods或方法来解决这个问题.它看起来真的很糟糕.
有人知道这是什么一回事吗?大声笑
@using Company.Mobile2.Enums
@helper BidsByShipment(string generatedId, int bidsCount, int activeBidsCount)
{
if (bidsCount > 0)
{
<a class="Company-listview-link Company-listview-bids" href="/Shipping/Bids/ByShipment?id={0}">
@if (activeBidsCount > 0)
{
<text>@bidsCount (@activeBidsCount @GetStr("Company"))</text>
}
else
{
<text>@bidsCount</text>
}
</a>
}
else
{
<text>0 @GetStr("Company")</text>
}
}
Run Code Online (Sandbox Code Playgroud) 所以我从我的MVC网络应用程序返回详细的400错误响应.设置existingResponse ="PassThrough"有效,但这不是我想要的.我不想公开所有的失败,我只想在我有自定义响应时公开它们.
自动,默认设置,但我故意设置它.但是,文档说必须设置"SetStatus"标志,但我不知道如何做这样的事情.我编写了以下四种控制器方法来测试它,只有BadRequestD工作.其他人设置状态代码和状态就好了,但是正文内容是"错误请求".
public ActionResult BadRequestA()
{
Response.StatusCode = 400;
return Content("weeeeee");
}
public ActionResult BadRequestB()
{
Response.Status = "400 U DUN MESSED UP";
return Content("weeeeee");
}
public ActionResult BadRequestC()
{
Response.Status = "400 U DUN MESSED UP";
Response.StatusCode = 400;
return Content("weeeeee");
}
public ActionResult BadRequestD()
{
Response.StatusCode = 400;
Response.TrySkipIisCustomErrors = true;
return Content("weeeeee");
}
Run Code Online (Sandbox Code Playgroud) 编辑我为这一个问题重新制作了整个项目.因此,我重新提出了这个问题.
我希望能够有效地避免N + 1和笛卡尔联接将第4级深层实体与第三级复合键连接在一起.
我正在寻找这个只在几个查询中完成,而不是延迟加载,而不是只是将所有表连接在一起.
A - (很多) - > B - (很多) - > C - (复合,单) - > D.
就像是:
Select * From A Left Join B On A.Id = B.AId
Select * From B Left Join C On B.Id = C.BId Inner Join D On C.DId = D.Id
Run Code Online (Sandbox Code Playgroud)
这是使用的代码这是一个功能齐全的应用程序.我使用NuGet安装Sqlite x86,StructureMap,NHProf,Fluent NH.
StructureMapServiceLocator:
namespace MyTest.NHibernateTest
{
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Practices.ServiceLocation;
using StructureMap;
public class StructureMapServiceLocator : ServiceLocatorImplBase
{
private readonly IContainer _container;
public …Run Code Online (Sandbox Code Playgroud) 所以我要求部分输出模型必须包含UI重要信息.此信息基本上是文本翻译和日期,价格,长度的建议格式.
所以输出模型的一个例子可能是:
{
statuses : {
enumValue1 : "Display This Text",
enumValue2 : "Display This Text2",
},
thePrice : {
value : 3.50,
formattedValue : "$3.50"
},
length : {
meters 3,
formattedValue : "3 ft."
},
iAmAPropertyOnlyInGet : 42
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我将它作为我的输出模型,那么拥有完全不同的输入模型是否"可以"?
{
status : {
enumValue1,
enumValue2,
},
thePrice : 3.50,
lengthInMeters : 3
}
Run Code Online (Sandbox Code Playgroud) 我想要做的是显示一个简单的数据网格,其中包含实体数据及其子项的聚合数据.例如,我们使用订单和订单项.我想显示订单信息和订单项的数量.
OrderID,OrderDate,NumOfLineItems
现在通常在SQL中,您可以通过多种方式完成.但这是我能想到的唯一可以在翻译成NHibernate时使用的方法.
SELECT o.OrderID, OrderDate, NumOfLineItems
FROM #Orders o
INNER JOIN
(SELECT o2.OrderID, COUNT(*) As NumOfLineItems FROM #LineItems l
INNER JOIN #Orders o2 ON o2.OrderID = l.OrderID
WHERE UserID = 1 GROUP BY o2.OrderID) t1 ON o.OrderID = t1.OrderID
WHERE UserID = 1
Run Code Online (Sandbox Code Playgroud)
我知道还有其他方法,但我正在考虑NHibernate允许我使用QueryOver语法的方式.我不想使用派生列.我试图避免编写SQL.
对于我的实体,我有一个Order实体和一个AggregatedOrder实体,在这种情况下它将是我的DTO,我计划使用变换器aliastobean将数据复制到其中.
我完全不知道如何解决这个问题.
到目前为止我所有的一切:
QueryOver<LineItem> x = QueryOver.Of<LineItem>()
.SelectList(p => p .SelectCount(l => l.Id).WithAlias(() => itemAlias.NumOfLineItems))
.JoinQueryOver<Order>(l => l.Order)
.Where(o => o.UserID == userID)
var y = session.QueryOver<Listing>()
.JoinQueryOver<Bid>(x); // no idea whats going on here
Run Code Online (Sandbox Code Playgroud) 我想我想做的是"链接"我的数据,以便最终看起来一样.我的所有HTML必须以某种形式包装
<fieldset class="" data-role="">
Run Code Online (Sandbox Code Playgroud)
所以我有一个帮助打印各种形式.一个是标签:
<fieldset data-role="@role">
<label>@Html.Raw(label)</label>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
现在我有多种类型的标签,其中一种包括代码块.当它是一个简单的文本,如"名字",我做:
@FieldSet.Label("First Name")
Run Code Online (Sandbox Code Playgroud)
但是,当我有一个代码块,如:
<b>some text</b>
<p>some other text (some time frame - some time frame)
Run Code Online (Sandbox Code Playgroud)
使用它变得复杂:
@FieldSet.Label("<b>" + Model.Text1 + "</b><p>" + Model.Text2 +
" (" + Model.Time1 + " - " + Model.Time2 +")</p>")
Run Code Online (Sandbox Code Playgroud)
我想要一个看起来像这样的解决方案:
@FieldSet.Label(@<text>
<b>@Model1.Text1</b>
<p>@Model.Text2 (@Model.Time1 - @Model.Time2)</p>
</text>)
Run Code Online (Sandbox Code Playgroud)
我在某个地方看到这是可能的,但我找不到这篇文章.我可能完全被误导,但我真的不想在后面的代码中有一段HTML,我想利用剃刀语法,而不是字符串连接.
我正在编写一个jQuery插件,它涉及将事件绑定到window.scroll.window.scroll中执行的操作取决于调用原始初始化时传入的设置.
如何在绑定事件中访问数据元素?
(function($) {
var methods = {
init : function(options) {
return this.each(function() {
$(window).bind("scroll.myPlugin", methods.windowOnScroll);
});
},
windowOnScroll : function() {
var $this = $(this);
var data = $this.data("scrollingLoader");
if (data.something) {
// ...
}
}
})(jQuery);
Run Code Online (Sandbox Code Playgroud) 我在App_Code目录中使用声明性帮助器时遇到问题.我为我的视图创建了一个基础webviewpage,其中包含我的本地化方法.我还有一组用于我的助手的枚举,它围绕着CSS名称.
例如,DataRole是一个枚举,指的是允许显示的CSS类,而GetStr是我的基类打印标签本地化值的方法:
@helper ReadOnlyColumns(DataRole role, string label, string contents)
{
<div class="@role">@GetStr(label)</div>
}
Run Code Online (Sandbox Code Playgroud)
我的web.config具有基页类型的定义,以及要包含的正确名称空间.这些设置适用于不在App_Code目录中的视图.
有没有人有任何想法如何使App_Code目录工作?我应该把web.config放在里面吗?我很茫然.
我知道你可以做@implements和@using,这很有效.但我正在努力为我们的软件奠定基础,并且不觉得应该包含将在我们编写的每个页面上使用的内容.
编辑,这是我在root中的web.config设置,以及每个views目录:
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="Company.Web.BaseWebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="Company.Web" />
<add namespace="Company.Web.Enums" />
</namespaces>
</pages>
</system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)
谢谢,
布拉德
我想使用MiniProfiler计算Application_OnStart.到目前为止,我一直没有成功.我试图创建一个Timing并将其添加到root的子节点,但它不会收集我想要的所有数据.它还会从整体配置文件时间中减去启动时间,因此最终会显示负的持续时间.目前我唯一的解决方案是使用秒表计时并将其添加到客户端计时.这将从第一个请求中删除客户端计时,并添加应用程序启动持续时间.但我没有获得自定义时序等.此外,因为我使用AddProfilerResults方法在我的MVC配置文件中组合我的API配置文件(对于MVC UI,它们包含在步骤中),第一个MVC上API的启动时间请求不包括在内,它基本上丢失了.
MiniProfiler.Current.ClientTimings = new ClientTimings
{
Timings = new List<ClientTimings.ClientTiming>
{
new ClientTimings.ClientTiming
{
Duration = startTime,
Id = Guid.NewGuid(),
MiniProfilerId = Guid.NewGuid(),
Name = "Application_Start",
Start = 0
}
}
};
Run Code Online (Sandbox Code Playgroud) c# ×3
razor ×3
nhibernate ×2
queryover ×2
aggregate ×1
app-code ×1
asp.net ×1
asp.net-mvc ×1
declarative ×1
formatting ×1
helper ×1
html-helper ×1
iis ×1
jquery ×1
rest ×1
syntax ×1