我是MVC的新手(我正在从传统的ASP.Net的黑暗面转移)而且我知道SO更像是"为什么这不起作用",但是,对于MVC来说,我只想问问如何实现了一些东西 - 我真的没有任何代码或标记,因为我现在不知道如何.
是的,使用一个类似的例子......我有一个表单,其中包含一个"Widgets"列表的下拉列表(由于SO而有效)...然后还有其他字段(长度/高度/宽度) )具有"默认"值.
当表单显示时,显示下拉列表,但L/H/W的表单字段为空/禁用,直到用户从DDL中选择一个.
现在,在clasic ASP.Net世界中,你会在"onselectedindexchange"上做一个PostBack,然后查看所选的项目,然后使用"master widget entry"版本中的值更新L/H/W字段.
由于MVC没有回发......这是如何实现的?
我有一个基本的集合类,它只包含一个自定义对象的列表,保存在List变量中以允许我使用this []索引.
但是,我现在想要使类可以从集合 LINQ查询中的项运行
使用简化的类比,我可以通过刚刚从列表中获得一名工作人员
Employeex = MyStaffList[Payroll];
Run Code Online (Sandbox Code Playgroud)
......但我现在想做的是
var HREmps = from emp in StaffList
where emp.Department == "HR"
select emp;
Run Code Online (Sandbox Code Playgroud)
下面是原型类定义....
public class StaffList
{
List<Employee> lst = new List<Employee>();
public StaffList()
{
/* Add Employees to the list */
}
public Employee this[string payroll]
{
get
{
Employee oRet = null;
foreach (Employee emp in lst)
{
if (emp.Payroll.Equals(payroll, StringComparison.InvariantCultureIgnoreCase))
{
oRet = emp ;
break;
}
}
return (oRet);
}
}
}
public …Run Code Online (Sandbox Code Playgroud) 我正在使用HTML SELECT标记,并希望确保当用户点击箭头位于控件的"文本框"部分下方时打开的窗口.
问题是IE似乎只是根据选择而任意打开窗口,但我需要确保一致的定位,因为页面上有其他元素需要始终保持可见
这是当前的标记
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<div style="margin-left: 5px; margin-top: 5px">
<div style="position: relative;">
<select style="position: absolute; top: 10px; left: 10px;">
<optgroup label="Choice A">
<option value="A-A">Sub choice A</option>
<option value="A-B">Sub choice B</option>
</optgroup>
<optgroup label="Choice B">
<option value="B-A">Sub Choice A</option>
<option value="B-B">Sub Choice B</option>
</optgroup>
</select>
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我正在Visual Studio 2015中开发Web API,并希望使用Chrome/Postman来查看JSon结果.
当我点击F5运行和Visual Studio启动调试会话时,有什么方法可以让Postman启动.
在我的逻辑应用程序中,我有一个 JSON 对象(从 API 响应解析),它包含一个对象数组。
如何根据属性值找到特定元素...下面的示例,我想在其中找到(第一个)活动元素
{
"MyList" : [
{
"Descrip" : "This is the first item",
"IsActive" : "N"
},
{
"Descrip" : "This is the second item",
"IsActive" : "N"
},
{
"Descrip" : "This is the third item",
"IsActive" : "Y"
}
]
}
Run Code Online (Sandbox Code Playgroud) 我的Utilities.CS文件App_Code夹中有以下文件作为我的MVC4应用程序中使用的"帮助器"方法(构建操作设置为编译)
如图所示,代码中有一个断点......
应用程序编译(Ctrl-Shift-B)没有错误但是当我运行应用程序时,我在断点之后的CS0122: 'Settings' is inaccessible due to its protection level后续return语句中得到一个.
该AdminGroup设置public在"设置设计器"中定义
突破点一线从来没有被击中,可能是由于运行时编译错误......但如果我编译它,它为什么重新编译后在运行时?
(对不起,我是MVC的新手,所以不确定发生了什么)
namespace MyApplication
{
public class Utilities
{
public static string UserID
{
get
{
return Regex.Replace(WindowsIdentity.GetCurrent().Name, @".+\\", "").ToUpper();
}
}
public static bool IsAdmin
{
get
{
System.Diagnostics.Debug.WriteLine("Break point on this line");
return (HttpContext.Current.User.IsInRole(Properties.Settings.Default.AdminGroup));
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
// …Run Code Online (Sandbox Code Playgroud) 我正在尝试对流读取数据的.Net CORE 2.0 API控制器的HTTP POST方法进行单元测试...无法使用“模型”类型的方法作为传入流原始数据。
这是控制器方法的基础。
[HttpPost()]
[Authorize(Roles = "contributor")]
public async Task<IActionResult> SubmitReport()
{
IActionResult result = null;
_logger.LogInformation("POST Request");
var buffer = new byte[this.Request.ContentLength.Value];
await this.Request.Body.ReadAsync(buffer, 0, buffer.Length);
string content = System.Text.Encoding.UTF8.GetString(buffer);
// Do something with the 'content'
return (Accepted()); // Assuming all was OK
}
Run Code Online (Sandbox Code Playgroud)
这是我的单元测试……或者据我所知。
[TestMethod]
public void eFormController_SubmitReport_MockService_ExpectHttpStatusAccepted()
{
var mockContextAccessor = new Mock<IHttpContextAccessor>();
var context = new DefaultHttpContext();
mockContextAccessor.Setup(x => x.HttpContext).Returns(context);
var mockLogger = new Mock<ILogger<object>>();
var ctrl = new Controllers.eFormsController();
var result = …Run Code Online (Sandbox Code Playgroud) 是否可以将赋值和验证"短路"到IF语句中.
这个东西排成一行..
if ((Match m = Regex.Match(data, pattern)).Success)
{
Console.WriteLine(m.Groups["myField"].Value;
}
Run Code Online (Sandbox Code Playgroud) 我正在设置一套企业 API,但我希望能够为消费者提供一些“存根”端点,以允许他们在不需要我的情况下继续其开发过程。
因此,当我们使用 Azure API Manager 时,我将使用 MOCK 响应请求。
现在,我知道任何响应都将是严格定义的数据契约/模式,但我想要做的是根据入站请求提供不同的响应有效负载内容。
设置模拟响应时,这是根据 HTTP 状态代码完成的,并且似乎您只能为每种状态设置一个模拟响应,因此您有一个用于 200 OK、202 Accepted 和另一个用于 500 Server Failure 和很快。
有没有办法说,例如 200 响应,可以选择根据请求回复不同的内容?
例如
正如所说,“一些选项的有效负载?” 将符合商定的 API 合同,但选项 A 的数组中可能只有 1 个元素,但选项 B 可能有 5 个元素。
/api/request?option=A => 200 OK {选项 A 的一些有效负载}
/api/request?option=B => 200 OK {选项 B 的一些负载}
我有一个表格显示问题/解决状态列表.
这是一个示例行
正如您所看到的,分辨率使用margin-leftCSS 缩进,宽度设置为100%,但它会溢出到下一个单元格中.
我已经尝试了所有的变化display: inline / inline-block / inline-table和也float: left,overflow-x: hidden但我不能得到"银条"留在TD内.
ETA:我对CSS不太聪明:(但我正在尝试:)
标记
<div id="Log">
<table style="width: 100%">
<tr>
/* other cells removed */
<td>
@Html.DisplayFor(model => item.LogEntry.Status)
@if (!string.IsNullOrWhiteSpace(item.LogEntry.ResetMessage))
{
<br />
<span class="reset">
@Html.DisplayFor(model => item.LogEntry.ResetMessage)
</span>
}
</td>
/* other cells removed */
</tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
#Log {
}
#Log > table {
color: white;
margin-top: 5px;
margin-bottom: 5px;
}
#Log > table tr th {
background-color: …Run Code Online (Sandbox Code Playgroud) 我刚刚在我的电脑上遇到了一个重大"事件",不得不重建.我借此机会安装VS2013(之前是2012年),我从MSDN安装了最新版本(en_visual_studio_ultimate_2013_x86_dvd_3175319.iso)
在所有启动并运行之后,它告诉我Update 1可用并且我尝试了各种尝试和安装,但每次都会弹出Visual Studio Banner标签,然后在不到一秒的时间内消失.
我尝试了各种排列,例如在Visual Studio内部/外部下载,在VS内部/外部启动,下载完整的ISO(而不是Web安装程序)等.
帮助 - >关于说v12.0.21005.1 REL
我正在运行Win 8 x64
有什么建议?
c# ×5
asp.net-core ×1
asp.net-mvc ×1
azure ×1
class ×1
css ×1
html ×1
html-select ×1
jquery ×1
linq ×1
moq ×1
postman ×1
razor ×1
unit-testing ×1
updates ×1