我刚从此链接http://go.microsoft.com/fwlink/?LinkID=324322安装了适用于Visual Studio 2013的Azure SDK .当我重新启动Visual Studio,并转到服务器资源管理器时,我看到Azure节点.我右键单击,然后转到管理和过滤Azure订阅.我点击"添加帐户...",没有任何反应.
我正在使用Visual Studio Ultimate 2013,Update 5
PS.我想也许这是我登录到Visual Studio的帐户,所以在右上角,我做了退出,现在我无法重新登录.我明白了:
组件"Microsoft.VisualStudio.Services.Client.Controls.BrowserWindow"没有由URI"/ Microsoft.VisualStudio.Services.Client ;component/controls/browserwindow.xaml"标识的资源.
我正在尝试使用 DocumentFormat.OpenXml 来读取上传的 Excel 文件。当我获取文件 (HttpPosteFileWrapper) 时,我只是尝试读取单元格并将它们写入文本字符串。(稍后我会做更多,但我现在只是想习惯 OpenXml。)
我在 Excel 中的数据如下所示:
Field1 - Field2 - 电话 - 城市
IT 部门 - Emp - 7175551234 - Springfield
HR - Emp - 7175556543 - W Springfield
代码如下所示:
var doc = SpreadsheetDocument.Open(file.InputStream, false);
WorkbookPart workbookPart = doc.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
SheetData thisSheet = worksheetPart.Worksheet.Elements<SheetData>().First();
System.Text.StringBuilder text = new System.Text.StringBuilder();
foreach (Row r in thisSheet.Elements<Row>())
{
foreach (Cell c in r.Elements<Cell>())
{
text.Append(c.CellValue.Text + ",");
}
text.AppendLine();
}
Run Code Online (Sandbox Code Playgroud)
它创建的字符串如下所示:
49,51,50,0,1,2,3,4,5,6,7,8,9,10,11,12,13,16,14,15,17,18,19,20,21, 22,40,41,42,43,44,45,54,\r\n
52,24,23,25,26,27,7306,33,28,29,30,31,17033,32,34, 7175555555,7175551234,7175554321,7175550000,35,36,37,36526,40179,38,39,30,31,17033,32,55,\r\n …
我正在尝试编写一种允许搜索 ID 列表的方法,但我希望允许该列表是可选的。我见过 的例子,List<string>
但我遇到了麻烦List<Guid>
。
在 LinqPad 中尝试此方法,我收到消息:
无法创建“System.Collections.Generic.List`1[[System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]”类型的空常量值。此上下文中仅支持实体类型、枚举类型或基本类型。
方法如下:
public static ICollection<Project> GetProjectsAllowed
(
this IMkpContext db,
Guid profileId,
List<Guid> profOrgIds = null
)
{
var projects = (from p in db.Project.Include(p => p.Proposals)
join po in db.ProfileOrganization on p.CreatedById equals po.ProfileId
where (profOrgIds == null || profOrgIds.Contains(po.OrganizationId))
&& p.IsActive && po.IsActive
select p);
return projects.ToList();
}
Run Code Online (Sandbox Code Playgroud)
更新:感谢您的评论,这就是我所做的:
public static ICollection<Project> GetProjectsAllowed
(
this IMkpContext db,
Guid profileId,
List<Guid> profOrgIds = …
Run Code Online (Sandbox Code Playgroud) 在我的代码中,我有一个ObjectA列表,每个ObjectA都有一个ObjectB列表.我想获得ObjectAs列表中所有ObjectB的一个列表.
如果我有这个对象:
public class ObjectA
{
public string Name {get; set;}
public List<ObjectB> Children {get; set;}
}
public class ObjectB
{
public string ChildName {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
这段代码:
void Main()
{
var myList =
new List<ObjectA>{
new ObjectA{
Name = "ItemA 1",
Children = new List<ObjectB>{
new ObjectB{ChildName = "ItemB 1"},
new ObjectB{ChildName = "ItemB 2"}
}
},
new ObjectA{
Name = "ItemA 2",
Children = new List<ObjectB>{
new ObjectB{ChildName = "ItemB 3"},
new ObjectB{ChildName = "ItemB 4"}
}
} …
Run Code Online (Sandbox Code Playgroud) 我使用这样的证书创建我的密钥:
CREATE SYMMETRIC KEY some_Key_01
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE myCert;
GO
GRANT VIEW DEFINITION ON CERTIFICATE::myCert TO sqlUser;
GO
GRANT VIEW DEFINITION ON SYMMETRIC KEY::some_Key_01 TO sqlUser;
GO
然后我试着打开它,像这样:
OPEN SYMMETRIC KEY some_Key_01
DECRYPTION BY CERTIFICATE myCert;
GO
SELECT CONVERT(datetime, DecryptByKey(EncryptedField))
AS 'DecryptedField'
FROM MyTable;
GO
但我收到的消息是:
Msg 15151, Level 16, State 1, Line 23
Cannot find the certificate 'myCert', because it does not exist or you do not have permission.
我正在Visual Studio 2013中开发一个MVC Web应用程序,我已经能够浏览应用程序的调试会话并在chrome中点击F12来观看我的javascript.我打开调试窗口,单击Sources选项卡,然后进入我的Content/JS/Script.js文件并设置断点.
最近,我的断点从未被击中.似乎javascript被调用了,但它并没有停止.我注意到如果代码错误,我可以点击错误中的链接,Sources会显示一个名为VM895的文件或类似的东西,这似乎是我的Script.js文件的副本,除了没有我的断点.
除非我的javascript错误,否则我找不到打开该文件的方法.
任何人都可以向我解释为什么会这样吗?为什么不使用我在实际脚本文件中放置的断点,以及可能发生了什么变化?
据我所知,eval
我的Javascript中没有使用任何地方.
这是我的MVC/Razor:
<div class="col-md-5">
@Html.DropDownListFor(model => model.SelectedRoleId,
ViewBag.ReviewRoles as SelectList,
new { @class = "form-control", onchange = "OnChangeAjaxAction.call(this, 'reviewRole');", id = "ddlReviewRole" })
</div>
Run Code Online (Sandbox Code Playgroud)
这是来自浏览器的渲染源:
<select
class="form-control" data-val="true"
data-val-number="The field SelectedRoleId must be a number."
data-val-required="The SelectedRoleId field is required."
id="ddlReviewRole"
name="SelectedRoleId"
onchange="OnChangeAjaxAction.call(this, 'reviewRole');">
<option value="14">Reviewer</option>
<option value="42">Erb Reviewer</option>
</select>
Run Code Online (Sandbox Code Playgroud)
这是Javascript:
OnChangeAjaxAction = function(e) {
var form = this.form;
//e.preventDefault(); //This prevents the regular form submit
var formData = new FormData($(form).get(0)); …
Run Code Online (Sandbox Code Playgroud) 我希望设置简单的路由,以便{controller} / {id}将默认为{controller} / details / {id}。我已经在这篇文章中进行了设置:ASP.NET MVC 4路由-controller / id vs controller / action / id
但是那篇文章暗示了工作的路线,我将需要int
{id}值。我们使用Guid ID。
这是我所拥有的:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.LowercaseUrls = true;
routes.MapMvcAttributeRoutes();
routes.MapRoute
(
name: "Detail",
url: "{controller}/{id}",
defaults: new { action = "Details", id = UrlParameter.Optional }
);
routes.MapRoute
(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Submission", action = "Index", id = UrlParameter.Optional }
);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用Guid
身份证吗?
我有一个 HttpClient (由 IHttpClientFactory 生成),其 BaseAddress 为“www.mydomain.com/3.0/”。我将使用不同的方法使用不同的路径来访问该客户端。所以我首先设置一个 HttpRequestMessage。我注意到这两个实现的行为不同。
这:
var message = new HttpRequestMessage(HttpMethod.Get, $"account-lookup/?query={email}")
{
Headers =
{
{ key, value }
}
};
Run Code Online (Sandbox Code Playgroud)
作品。但是这个:
var message = new HttpRequestMessage()
{
Method = HttpMethod.Get,
Headers =
{
{ key, value }
},
RequestUri = new Uri($"account-lookup/?query={email}")
};
Run Code Online (Sandbox Code Playgroud)
返回异常Invalid URI: The format of the URI could not be determined.
我们不能用这样的字符串创建一个新的 Uri,不是吗?为什么我们没有一个属性或方法来让我们传递路径字符串?我假设 HttpRequestMessage 的构造函数在内部将传递的属性附加或连接到 BaseAddress?
我可以/应该做类似的事情
RequestUri = new Uri(Client.BaseAddress + $"account-lookup/?query={email}")
,但是以某种方式附加路径字符串会很好。
我的 MVC 视图中有这段代码:
<div style="">
@Html.DisplayFor(modelItem => item.ContentResourceFile.FileName)
@if (item.ContentResourceFile != null && !string.IsNullOrEmpty(item.ContentResourceFile.FileName))
{
Html.DisplayFor(modelItem => item.ContentResourceFile.FileName);
}
</div>
Run Code Online (Sandbox Code Playgroud)
FileName 的第一个 DisplayFor 工作它在结果中呈现,但 IF 语句中的一个不呈现。
有人可以解释为什么吗?
我想编写一个 Web Api 控制器操作,根据结果发送电子邮件。我想使用带有数据模型的 MVC 视图或部分视图来呈现电子邮件正文。
有没有办法做到这一点?
我想要这样的东西:
public class NotificationApiController : ApiController
{
private IMkpContext db;
public string ViewNotifications()
{
var dataModel = GetDataModel();
if (dataModel != null)
{
SendEmail(dataModel.ToAddress, dataModel.FromAddress, dataModel.Subject, RenderBody("viewName", dataModel);
}
return string.Empty;
}
}
Run Code Online (Sandbox Code Playgroud)
其中 RenderBody 将查找 viewName,用 dataModel 中的数据填充它,并将 View 呈现为字符串。
c# ×4
asp.net-mvc ×2
linq ×2
certificate ×1
debugging ×1
encryption ×1
excel ×1
httpclient ×1
httprequest ×1
javascript ×1
memorystream ×1
openxml ×1
razor ×1