(对不起,这里有几个项目,但似乎没有一个允许我让这个工作.)
我想创建一个允许多选的DropDownList.我能够填充列表,但我无法获得当前选定的值似乎工作.
我的控制器中有以下内容:
ViewBag.PropertyGroups = from g in db.eFinGroups
where g.GroupType.Contents == "P"
select new
{
Key = g.Key,
Value = g.Description,
Selected = true
};
ViewBag.SelectedPropertyGroups = from g in company.Entities
.First().Properties.First().PropertyGroups
select new {
g.eFinGroup.Key,
Value = g.eFinGroup.Description };
在视图中我有:
@Html.DropDownListFor(model => model.PropertyGroupsX,
new MultiSelectList(ViewBag.PropertyGroups
, "Key", "Value"
, ViewBag.SelectedPropertyGroups),
new { @class = "chzn-select", data_placeholder = "Choose a Property Group", multiple = "multiple", style = "width:350px;" })
PropertyGroupX是模型中的字符串[].
我已尝试使用所选属性的所有类型的迭代...只传递值,只传递键,两者等.
另外,PropertyGroupX应该是什么类型的?字符串数组是否正确?或者它应该是包含当前属性组的字典?我真的很难找到这方面的文档.
有人建议我应该使用ListBoxFor.我已经改变了,仍然有同样的问题.呈现选项标记时,所选值未设置为选中状态.这是我尝试过的:
@ Html.ListBoxFor(model => model.PropertyGroups,new MultiSelectList(ViewBag.PropertyGroups,"Key","Value"))
我已经尝试将model.PropertyGroups作为匹配值的字符串集合,作为Guid的集合匹配此ID,并作为匿名类型同时具有Key和Value以匹配ViewBag中的项目.似乎没什么用.
selectlist multi-select asp.net-mvc-3 drop-down-menu html.listboxfor
我有一个带有存储库的Visual Studio在线团队项目.我已经和VS 2013一起使用了一段时间了.
我在团队资源管理器中安装了VS 2015并连接到Visual Studio,并选择了相关项目.
然而,根据解决方案,它说:
您必须克隆存储库才能打开此项目的解决方案.
我确实去了设置并编辑我的全局设置以正确设置我的存储库根目录.(与Visual Studio 2013中设置的位置相同)
但是,它已经克隆并在我的本地机器上.
为什么VS 2015 Team Explorer没有看到现有的存储库文件夹?除了删除文件夹并再次进行克隆之外,我该如何解决此问题?
我有一个视图模型发送到我的控制器的编辑操作.ViewModel包含对EntityObjects的引用.(是的,我很喜欢它,并且不需要复制viewmodel中的所有实体属性).
我实例化视图模型,然后调用UpdateModel.我得到一个属性为"null"的错误,这很好,因为它是一个相关的模型.我试图在模型绑定期间排除属性绑定.在调试它时,我在实体中看到模型绑定器试图将属性的值设置为null.
这是我的编辑操作:
var model = new SimplifiedCompanyViewModel(id);
var excludeProperties = new string[] {
"Entity.RetainedEarningsAccount.AccountNo"
,"Property.DiscountEarnedAccount.ExpenseCodeValue"
,"Entity.EntityAlternate.EntityID"
,"Property.BankAccount.BankAccountID"
,"Entity.PLSummaryAccount.AccountNo"
,"Property.RefundBank.BankAccountID"
,"Company.Transmitter.TCC"
};
try
{
UpdateModel<SimplifiedCompanyViewModel>(model, String.Empty, null, excludeProperties);
if (ModelState.IsValid)
{
//db.SaveChanges();
}
return RedirectToAction("Index");
}
catch
{
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
我已经看了一些关于指定"前缀"的其他问题,但我不认为这是问题,因为我告诉它绑定到viewmodel实例而不仅仅是实体对象.
我是否正确排除了这些属性?奇怪的是,这件事似乎只发生了.我怀疑这可能是一个问题,实际上没有与我的实体相关的退款银行.但我有其他相关的项目不存在,并没有看到相同的问题.
更多信息...因为我告诉我模型设计不好.
本公司与BankAccount有关.公司视图显示当前相关的BankAccount.BankAccountId,并且BankAccount.Key有一个隐藏字段.我使用jQueryUI自动完成功能提供显示BankAccount.BankAccountId的银行帐户下拉列表,当选择一个时,jQuery代码会更改隐藏字段以获得正确的Key值.因此,当发布此消息时,我不希望修改当前的银行账户BankAccountID,因此我希望它跳过绑定该字段.
如果我在模型中排除BankAccountId,那么在BankAccount编辑视图中,用户永远无法更改BankAccountId,因为它不会被绑定.我不确定这表明模型设计不佳.
我的Web api控制器中有以下操作:
// POST api/<controller>
[AllowAnonymous]
[HttpPost]
public bool Post(string user, string password)
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
当使用fiddler或测试jQuery脚本命中它时,我收到404状态的以下错误:
{"消息":"没有HTTP资源发现该请求URI匹配' 的http://localhost/amsi-v8.0.0/api/account ’.","MessageDetail":"无动作是在控制器"帐户发现'匹配请求."}
我的http路由如下:
RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
工作得很好.我在这里找到另一个问题,讨论从IIS中删除WebDAV.我试过了,还是同样的问题.
为什么我会得到404?
一位客户让我成为他的Azure订阅的共同管理员.但是,我无法编辑他的Active Directory,即添加/编辑用户,创建应用程序等.
为什么我不能访问它?我想也许订阅是由AD拥有而不是相反.
AD中的每个角色级别允许什么?有
我们刚刚将我们的应用程序从ASP.Net 2.0更新到ASP.Net 4.0.
我们已经包含在<system.web>元素中的web.config中:
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
Run Code Online (Sandbox Code Playgroud)
我的理解是,这应该使控件与.Net 2.0/3.5相同.
但是......它不是......这是一个例子
这是在2.0中呈现的:
<input id="grdUserEntity__ctl1_chkSelectAll" type="checkbox"
name="grdUserEntity:_ctl1:chkSelectAll" onclick="javascript:iSelectAll();" />
Run Code Online (Sandbox Code Playgroud)
这是在4.0:
<input id="grdUserEntity_ctl01_chkSelectAll" type="checkbox"
name="grdUserEntity$ctl01$chkSelectAll" onclick="javascript:iSelectAll();" />
Run Code Online (Sandbox Code Playgroud)
区别:
2.0 id=grdUserEntity__ctl1_chkSelectAll
4.0 id=grdUserEntity_ctl01_chkSelectAll
Run Code Online (Sandbox Code Playgroud)
根据我读到的,配置设置将导致ASP.Net 4.0呈现服务器控件和客户端ID与先前版本相同.
我们做错了什么?
我的解决方案中有一个 vb.net 项目,其中包含创建编译器警告的问题。
我已在 Visual Studio 项目设置的编译页面中将“将警告视为错误”设置为 true。
当我在 Visual Studio 2012 中构建调试或发布配置时,我收到错误报告。
当我在 Visual 2013 中构建 Release congif 时,出现错误。当我在调试配置中构建时,我什么也没得到。这似乎是 VS2013 中的一个错误。
当我在命令行(版本 4 或版本 12)中使用 MSBuild 运行时,它只报告警告,无论哪种配置。我尝试了谷歌搜索时发现的各种东西:
msbuild /t:Rebuild /p:TreatWarningsAsErrors="true"
msbuild /t:Rebuild /p:TreatWarningsAsErrors=true
msbuild /t:Rebuild /t:TreatWarningsAsErrors="true"
msbuild /t:Rebuild /t:TreatWarningsAsErrors=true
Run Code Online (Sandbox Code Playgroud)
我尝试过的任何事情都没有透露我想要的结果。我不确定为什么 MSBuild 不使用 .csproj 文件中的设置。
从命令行使用 MBBuild 构建时,将编译器警告视为错误的正确方法是什么?
这是我正在做的简化版本.
我创建了一个包含公司数据的视图模型.该公司有3个地址.因此,为了聪明,我创建了一个AddressViewModel和一个_address部分.
我遇到的问题是,虽然我可以将AddressViewModel传递给partial,但它呈现的地址我现在在HTML中有重复的ID ...所以现在表单上有三个"Line1"输入字段,当然不会回复正确.
我该如何解决这个问题.是真正展平ViewModel的唯一方法,
MainAddressLine1 MailAddressLine1 BillAddressLine1
在公司视图模型?而且,如果我这样做,我还能以某种方式使用_address部分吗?
asp.net ×1
asp.net-4.0 ×1
azure ×1
azure-devops ×1
clientid ×1
git ×1
msbuild ×1
multi-select ×1
selectlist ×1
viewmodel ×1