我有一个ASP.NET MVC站点,托管在Amazon EC2服务上.我想与MS WebDeploy建立自动部署到此站点.我发现了一篇很棒的文章:使用Microsoft Web Deploy自动部署.
我无法访问,https://mySite:8172/MsDeploy.axd
因为默认情况下端口8172在亚马逊上关闭.我对EC2服务配置不太熟悉,所以我无法了解如何通过https协议打开此端口.我已重新配置IIS以使用默认端口(433),我在用于我的站点的Amazon安全组上打开此端口.
现在我试图https://mySite/MsDeploy.axd
在网络浏览器中打开.IE请求凭据,记下证书错误(我点击"继续..")并转发给我404.
可以肯定的是,我尝试通过VS 2010进行部署,当然它不起作用.
任何在Amazon EC2中使用MS Web Deploy经验的人都可以告诉我我做错了什么吗?
我有一个案例,复杂的局部视图需要根据部分视图的使用位置进行不同的字段验证.
我认为我可以通过使局部视图将接口作为模型类型并基于接口实现两个不同的ViewModel来解决这个问题.两个ViewModel中的数据注释会有所不同.然后,我将向部分视图提供正确的ViewModel的实例.
但我发现,唯一被识别的注释是界面本身的注释.实现ViewModel类的接口上的DA被忽略,即使这些是作为模型传递的对象.所以我的计划不起作用.
有没有解决的办法?更好的方法?如果可以避免,我宁愿不将局部视图拆分为单独的视图.
ETA:这是部分视图的缩写版本,如下所示:
@model IPerson
@Html.ValidationSummary(false)
<fieldset>
<table class="editForm">
<tr>
<td class="editor-label">
@Html.LabelFor(model => model.FirstName)
</td>
<td class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</td>
<td class="editor-label">
@Html.LabelFor(model => model.LastName)
</td>
<td class="editor-field">
@Html.EditorFor(model => model.LastName)
@Html.ValidationMessageFor(model => model.LastName)
</td>
</tr>
</table>
<fieldset>
Run Code Online (Sandbox Code Playgroud)
真正的局部视图很长,有很多@if语句管理可选部分的渲染(或不渲染),但它没有做任何棘手的事情.
伙计们,
我一直在研究MVC 3应用程序.我使用的是VS 2010的内置Web服务器.今天,出于各种原因,我被要求将其移动到虚拟目录中并在IIS 7下运行,仍在我的开发PC上.
现在它的URL是"localhost/MyVirtualDirectory"而不是"localhost:12345",我需要更改什么才能使路由工作,以及在哪里?
我没有使用任何原始HTML锚标签或重定向,只是@ Html.ActionLink等.根据我所读到的,如果我一直在做MVC的方式,这个改变应该是透明的.
但是在开始时,验证后重定向失败了.在成功验证时,它应该返回结果
this.RedirectToAction("index", "Home")
Run Code Online (Sandbox Code Playgroud)
你猜对了:而不是"/ MyVirtualDirectory/Home",重定向转到"/ Home".哪个失败了.
因此缺少需要设置的东西.它是什么?
谢谢,所有.
情况
我们有一个应用程序,我们将机器设置存储在SQL表中.当用户更改机器的参数时,我们创建一个"修订版",这意味着我们在表中插入一行.该表有大约200 列.在我们的应用程序中,用户可以查看每个修订版.
问题
我们想要突出显示自上次修订以来已更改的参数.
问题
是否有一种只使用SQL的方法来获取两行之间差异的列名?
一个例子
ID | p_x | p_y | p_z
--------------------
11 | xxx | yyy | zzz
12 | xxy | yyy | zzy
Run Code Online (Sandbox Code Playgroud)
查询应返回p_x
和p_z
.
编辑
该表有200列,而不是行...
我的方式
我的目的是为这个问题找到一个"一行SQL语句".
我在下面的答案中看到,它在SQL中更重要.由于没有针对此问题的简短的SQL解决方案,因此在我们的软件(c#)的后端解决它当然要容易得多!
但由于这不是我的问题的真正"答案",我不会将其标记为已回答.
谢谢您的帮助.
伙计们,
我有一个MVC3数据输入表单场景,涉及要求用户在满足客户端验证之后但在发布到服务器之前确认某些内容 .
有没有办法在验证框架允许回发之后,但在回发之前将一些javascript插入到事件序列中?
(当然,如果用户拒绝确认,则回发也必须取消.)
非常感谢.
我知道这个问题,但是原始海报接受了一个不涉及嵌套的解决方案。我肯定想嵌套部分视图(当然,除非有更好的方法)。
我有一个页面可以Ajax加载几个局部视图之一,具体取决于用户在主视图中的操作。(这些视图是局部的,因为我的理解是,如果您想从Ajax调用中加载大量其他内容,则需要从调用中返回PartialViewResult。)几个局部视图具有一个公共元素,即下拉菜单,我希望喜欢将自己的部分观点考虑在内。
但这是行不通的。每个局部视图都有一个关联的视图模型,即它们的模型。对于嵌套的部分视图,我想从父视图的视图模型传递单个字段的值(可为null的int)作为嵌套的部分视图的模型。
但是在运行时,我收到一条错误消息,说我的局部视图需要Nullable <int>但收到X,其中X是与父局部视图关联的视图模型的类型。
所以我的问题是双重的:
是否完全不允许嵌套局部视图?(在这种情况下,我希望框架会检查情况并抛出一个如此明确表示的错误。)
除了局部视图之外,是否有办法获得我希望的分解出的公共接口元素的效果?我已经考虑过但没有尝试创建一个编辑模板,因为我认为对于部分视图不起作用的内容对那些视图不起作用,但是我可能是错的。
ETA:我发现了我的问题:当您将模型的空值传递给HtmlHelper.Partial或RenderPartial时,假设您只是没有传递模型,则渲染引擎会代替调用的局部视图的模型来代替该空值。 。
在我的情况下,这是不正确的:我的Nullable <int>是Nullable,因为在设置之前,它为null!null在语义上有意义!
但这就是为什么我遇到问题。
这就是我想要做的事情:
到目前为止,这是在逃避我.
我有一个自定义类型:
[TypeConverter(typeof(ServiceConfigurationConverter))]
[Serializable]
public class ServiceConfiguration
{
public string Name { get; set; }
public string Url { get; set; }
// more
}
Run Code Online (Sandbox Code Playgroud)
它有一个自定义TypeConverter,可以从字符串来回转换它.我这样编写它是因为我发现的示例都是为了转换为字符串,因为如果它意味着我的值被保存到app.config,我会愿意序列化为字符串.但正如我们将要看到的,它们不是.
如果我指示(通过直接编辑Settings.settings文件)该设置的类型MyNamespace.ServiceConfiguration[]
,我可以手动输入XML来表示数组.(我通过编写一个以编程方式构建数组的测试来获取XML,然后使用它进行序列化XmlSerializer
.)但是,虽然这个XML在Settings.designer.cs中设置为设置的默认值,但它不会保存到app的.config.
这是有问题的,因为我希望人们能够在app.config中以XML格式查看属性值,并且能够在需要时更改它们.如果它没有从app.config中写入和读取,则它不是运行时可配置的.
如果我在app.config中手动创建一个条目applicationSettings
,然后在我的序列化数组中输入作为设置的值,设置设计器会询问我是否要更新设置文件值,并且这样做 - 但是删除了我放入的条目在下applicationSettings
.
如果有必要,我愿意考虑为我的自定义类型编写某种设计师,但我不知道会是什么样的设计师.
(我知道如果我只是将属性类型更改为"string",我可以将序列化的XML保存为字符串并避免这个问题.但我想要的是一个属性,其类型是我的自定义类型,而不是我有的重建.)
任何人都可以告诉我如何使用自定义类型在这篇文章的顶部实现三个目标?
非常感谢.
c# designer typeconverter visual-studio-2010 settings.settings
我有一个SQL Server 2005过程需要修改,以调用链接服务器上的过程.我的本地过程由几个其他过程调用,始终在事务中.
如果我将调用添加到链接服务器,那么在运行时我收到一条消息,说明OLE DB提供程序无法开始分布式事务.
这对我来说没问题:据我所知,远程过程不会对数据库进行任何更改.我不需要它在事务内部,因此不需要分布式事务.
但我怀疑我没有那个选项,没有办法关闭交易扩展到链接服务器.它是否正确?
(我可以通过重构这些过程来解决这个问题,以便在所有事务之外对父进程进行对链接服务器的调用.但从逻辑上讲,它属于这个子进程,所以我想保留它.)
谢谢,所有.
我有一个网页,其中包含由ASP.NET控件生成的HTML表.表格的顶行模拟工具栏.排在第一行的是这样的:
<tr>
<td style="white-space:nowrap;">
<span>Very long title</span>
</td>
<td>
{ bunch of hyperlinks with background images, emulating a toolbar }
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我坚持这样一个事实,即这是一个表格,标题区域的内容放在一个范围内,并且可能使用指定无包装的内联样式.
当页面变窄时,该表应该缩小,并且它做得非常好.但是,如果实际的标题文本(可以变化)太长,它实际上可以限制表格的缩小程度,这可能导致与页面上的其他内容重叠.(我正在使用IE8,BTW.)
我尝试应用overflow:hidden
,, text-overflow:ellipsis
和display: inline-block
跨度并为表格单元格添加宽度值,所有这些都通过样式表.(Display:block
在跨度上加倍了行的高度,这是我不想要的,所以inline-block
是我的选择.)标题文本显示为截断,正如我想要的那样.但桌子不会变得更窄.
在通过IEDT改变价值观和风格后,我得出结论,当弄清楚桌子有多窄时,文本仍被视为其全长.跨度相对较短,只出现了跨度中出现table-cell
的文本,但出于宽度目的,文本仍然存在.
我没有发现任何地方记录这种现象,但也许我只是没有足够的.:)如果text-overflow
无法帮助我,我想我将不得不通过脚本动态截断标题,我宁愿不这样做.有没有办法单独通过CSS做我想做的事情?
我们在下拉列表中显示所有美国城市.但是当我向下滚动下拉列表并选择一些值时,浏览器就会被挂起.如果有任何解决方案可以解决,请告诉我.
<div class="customselectdiv custom-req" id="divCity" runat="server" visible="false">
<asp:DropDownList ID="ddlCity" runat="server" TabIndex="10" class="customselect required" Visible="false" AutoPostBack="true" OnSelectedIndexChanged="ddlCity_SelectedIndexChanged"></asp:DropDownList>
</div>
Run Code Online (Sandbox Code Playgroud)
城市正在约束数据库的下拉列表.
假设您有一个标准化视图的数据
ID First Name Last Name Height
-- ---------- --------- ------
1 Ann Jones 63
2 John Smith 72
Run Code Online (Sandbox Code Playgroud)
但是数据以这种表示形式出现在我们面前:
ID Type Value
-- ---- -----
1 'FirstName' Ann
1 'LastName' Jones
1 'Height' 63
2 'FirstName' John
2 'LastName' Smith
2 'Height' 72
Run Code Online (Sandbox Code Playgroud)
它是一种横向转向的标准化表格,或者是一种"不透明"的表格.
我的问题是:这种表示是否存在名称 - 这些"ID,类型,价值"三元组?(实际上,Type是一个整数并映射到一个类型表,但是我把它变成了一个字符串,使它更清晰.)
c# ×2
sql-server ×2
amazon-ec2 ×1
asp.net ×1
asp.net-mvc ×1
css ×1
designer ×1
html ×1
interface ×1
javascript ×1
jquery ×1
overflow ×1
post ×1
sql ×1
transactions ×1
validation ×1
webdeploy ×1