我们features/foo创建了一个master尚未合并的功能分支。
最近我们创建了一个新dev分支,以便master仅包含版本。
因此我需要features/foo转向dev.
我是否需要dev为该功能创建一个新分支,然后推送到该分支,或者是否有更好的方法?
我正在创建一个责任链管道,使用管道System.Func<T, T>中的每个函数保存对下一个函数的引用.
在构建管道时,我无法通过引用传递内部函数,因为它会因管道函数的重新分配而抛出StackOverflowException,例如:
Func<string, Func<string, string>, string> handler1 = (s, next) => {
s = s.ToUpper();
return next.Invoke(s);
};
Func<string, string> pipeline = s => s;
pipeline = s => handler1.Invoke(s, pipeline);
pipeline.Invoke("hello"); // StackOverFlowException
Run Code Online (Sandbox Code Playgroud)
我可以用一个闭包解决这个问题:
Func<string, Func<string, string>, string> handler1 = (s, next) => {
s = s.ToUpper();
return next.Invoke(s);
};
Func<Func<string, string>, Func<string, string>> closure =
next => s => handler1.Invoke(s, next);
Func<string, string> pipeline = s => s;
pipeline = closure.Invoke(pipeline);
pipeline.Invoke("hello");
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否有更有效的方法来构建这个函数链,也许使用表达式?
我使用ASP.NET MVC越多,我就越喜欢它.但是,在母版页上显示模型数据的情况下,似乎有几种方法可以实现.我不确定最好的解决方案.
我的例子是一个商业网站,我想在每个页面上输出产品类别列表,并显示访客购物车的状态.
在asp.net Web表单中,我通常会使用用户控件执行此操作,每个用户控件都执行自己的数据绑定以检索所需的数据.
在MVC中,所有数据都应由控制器传递.
因此,对于类别,最简单的解决方案似乎是在控制器操作中的View数据中传递它:
ViewData["Categories"] = _service.GetCategories();
Run Code Online (Sandbox Code Playgroud)
但是,为每个操作执行此操作并不是很干,所以在本文之后我创建了一个基本控制器,它将所需的数据添加到我的ViewData:
public class AppController : Controller
{
IAppService _service;
public AppController() { }
public AppController(IAppService appService)
{
_service = appService;
SetSiteData();
}
private void SetSiteData()
{
ViewData["Categories"] = _service.GetCategories();
}
}
Run Code Online (Sandbox Code Playgroud)
然后我为ViewMasterPage创建了一个扩展:
public static void RenderCategoryList(this ViewMasterPage pg) {
pg.Html.RenderPartial("CategoryList", pg.ViewData["Categories"]);
}
Run Code Online (Sandbox Code Playgroud)
在我的MasterPage中:
<div>
<%this.RenderCategoryList(); %>
</div>
Run Code Online (Sandbox Code Playgroud)
这似乎是一个非常干净的方法.但是,这是最好的方法,因为我也看到了为MasterPage创建ViewModel的建议.我可以看到,随着ViewModel数据的增长,这可能是一个更好的解决方案.
关于购物车状态,我想我会做类似的事情但不确定RenderAction是否更合适(何时使用RenderAction与RenderPartial与ASP.NET MVC).谢谢,本
是否存在可在ASP.NET MVC中使用的默认值属性,以便为输入设置默认属性,即创建表单.
System.ComponentModel中有这样的属性,但它没有任何效果.
谢谢Ben
按照标题真的.
我有一个长时间运行的任务,轮询一个消息队列.
偶尔我可能希望停止任务,做一些工作然后重新开始.这样做的正确方法是什么?
我想确保我正确理解了(草案)规范,其中指出:
重定向端点 URI 必须是
[RFC3986] 第 4.3 节定义的绝对 URI 。端点 URI 可以包含一个
“application/x-www-form-urlencoded”格式
([W3C.REC-html401-19991224])查询组件([RFC3986] 第 3.4 节),在添加附加查询参数时必须保留该组件。的
端点URI必须不包括一个片段组成。
我问的原因是 Google 或 Facebook 似乎都没有保留任何查询字符串。
我们的 Web 应用程序允许用户指定他们自己的“slugs”,其中可以包含相对路径,例如 /somedir/some-file.htm。
在我们的路由配置中,我们需要确保只支持有效的 slug(带段)。
我使用的正则表达式是:
(^[a-z0-9])([a-z0-9-/]+)([a-z0-9])$
Run Code Online (Sandbox Code Playgroud)
这意味着:
不幸的是,这也意味着双斜线将匹配例如 somedir//subdir//some-file.htm 因为我的表达式允许一个或多个斜线。
如何更改它以允许段之间有零个或多个斜线。
我认为:
(^[a-z0-9])(/?[a-z0-9-]+/?)([a-z0-9])$
Run Code Online (Sandbox Code Playgroud)
会起作用,但不会。
我正在为 Quartz.NET 开发一个基本的 Web 客户端,它支持在运行时修改作业的 JobDataMap。
我的工作装饰有以下属性,我认为这些属性是使工作有状态所必需的:
[PersistJobDataAfterExecution]
[DisallowConcurrentExecution]
public class SampleTenantJob : IJob { ... }
Run Code Online (Sandbox Code Playgroud)
在运行时,我执行以下代码但 JobDataMap 没有持久化:
public void UpdateJobProperties(string jobName, string groupName, IDictionary<string, object> properties)
{
IJobDetail job;
if (!TryGetJob(jobName, groupName, out job))
return;
foreach (var property in properties)
{
if (job.JobDataMap.ContainsKey(property.Key) && property.Value != null)
{
job.JobDataMap.Put(property.Key, property.Value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我最初认为这是因为我正在使用XMLSchedulingDataProcessorPluginfor 作业,但我已经尝试了内存(RAMStore)AdoJobStore并且仍然无法保留JobDataMap远程客户端所做的更改。
我想从ASP.NET Web API中的请求查询字符串绑定到动态对象.虽然[FromUri]使用普通类来处理动作参数,但它似乎不适用于动态(动态对象为空).
public dynamic Get(string id, [FromUri]dynamic criteria)
{
return Ok();
}
Run Code Online (Sandbox Code Playgroud)
请注意,这需要适用于GET请求,因此没有正文.
我希望在我的ASP.NET MVC应用程序中使用NVelocity,而不是作为视图引擎,只是为了呈现一些电子邮件模板.
但是,我不能为我的生活得到它的工作.我已经从城堡项目下载了它,并按照http://www.castleproject.org/others/nvelocity/usingit.html#step1上的示例进行了操作
无论我尝试什么,我似乎无法加载位于我的网站中的模板.该示例建议使用绝对路径,我试图无效:
Template t = engine.GetTemplate("/Templates/TestEmail.vm");
Run Code Online (Sandbox Code Playgroud)
所以请有人给我两个例子.一个是加载位于网站目录中的模板,另一个是解析一个字符串变量(因为我的模板很可能存储在数据库中).
非常感谢Ben
asp.net-mvc ×2
c# ×2
.net ×1
asp.net ×1
git ×1
master-pages ×1
nvelocity ×1
oauth-2.0 ×1
quartz.net ×1
regex ×1
task ×1