小编Tra*_*s J的帖子

我可以为返回视图简化此代码吗?这似乎非常多余

有没有办法将这些缩小为一组结果?我有一组像这样的页面,只返回静态内容,并认为必须有一个更有效的方法来做到这一点.

    public ActionResult Research()
    {
        return View();
    }

    public ActionResult Facility()
    {
        return View();
    }

    public ActionResult Contact()
    {
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

编辑:感谢所有的回复:)

c# asp.net-mvc-3

6
推荐指数
1
解决办法
133
查看次数

为什么Unity使用服务定位器?

我在几个教程中看到了这行代码,用于在asp.net mvc3中使用Unity.我的印象是服务定位器是反模式而不是最佳实践.这个服务定位器是否定义了反模式以外的定义,或者这行代码/此实现被认为是不好的做法.

ServiceLocator.SetLocatorProvider(() => new UnityServiceLocator(Container));
Run Code Online (Sandbox Code Playgroud)

unity-container service-locator asp.net-mvc-3

6
推荐指数
3
解决办法
1万
查看次数

使用@ Html.Raw有风险吗?

使用有风险@Html.Raw吗?在我看来应该没有.如果是有风险的,然后那不是很危险,无论使用已经存在@Html.Raw于现代的浏览器,如Chrome浏览器将允许编辑注射<script>malicious()</script>,甚至改变一个表单的POST操作到别的东西.

razor asp.net-mvc-3

6
推荐指数
1
解决办法
3640
查看次数

如何将动态代理转换为POCO?

我正在尝试序列化域模型并遇到一个需要将动态代理转换为POCO的问题.我遇到的问题是通过模型中的虚拟属性存在循环引用.虽然我试图使用[ScriptIgnore]序列化程序不解析这些属性,但它仍然可以.我相信这是因为对象是动态代理,并且属性中仍然存在一些导致解析器进入的残余(这反过来导致递归错误"循环引用" - 我尝试将递归限制为3步但我得到了错误"超出递归步骤").

如何将对象从动态代理转换为POCO以便可以序列化?

编辑:简单的例子

public class One : BaseViewModel
{
    public int OneId { get; set; }
    public virtual ICollection<Two> Two { get; set; }
}

public class Two
{
    public int TwoId { get; set; }
    public int OneId { get; set; }
    [ScriptIgnore]
    public virtual One One { get; set; }
}

public abstract class BaseViewModel
{
    public string AsJson()
    {
        var serializer = new JavaScriptSerializer();
        return serializer.Serialize(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# serialization dynamic-proxy entity-framework-4.1 asp.net-mvc-3

6
推荐指数
1
解决办法
8441
查看次数

无法从jQuery对象获取innerHTML

我正在使用谷歌地图api.我写了下面的代码.

<div id="map"></div>
Run Code Online (Sandbox Code Playgroud)

我使用谷歌浏览器控制台查看内容$("div#map").

console.log($("div#map"));
Run Code Online (Sandbox Code Playgroud)

结果是:

[
<div id=?"map" style=?"width:? 1218.222222328186px;? position:? relative;? background-color:? rgb(229, 227, 223)?;? overflow:? hidden;? -webkit-transform:? translateZ(0)?;? ">?
<div style=?"position:? absolute;? left:? 0px;? top:? 0px;? overflow:? hidden;? width:? 100%;? height:? 100%;? z-index:? 0;? ">?…?</div>?
</div>?
]
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到innerHTML:

<div style=?"position:? absolute;? left:? 0px;? top:? 0px;? overflow:? hidden;? width:? 100%;? height:? 100%;? z-index:? 0;? ">?…?</div>?
Run Code Online (Sandbox Code Playgroud)

我试过了$("div#map > div"),但没有回复.为什么?是因为Javascript生成的innerHTML?我怎样才能得到它并在上面的div中插入另一个div?

非常感谢你.

javascript jquery innerhtml

6
推荐指数
2
解决办法
1万
查看次数

可以绕过那个最近的祖先?

"绝对定位的元素相对于最近的祖先定位." - MDN:位置 - CSS

当有一个父母被定义为position:relative;但我没有意识到的是position:absolute技术上有资格作为"定位的祖先" 时,我理解这一点.

这是一个示例:http://jsfiddle.net/MSzZG/如果文本"在顶部"可以将top属性应用于窗口而不是包含div但是我只是无法弄清楚是否有可能绕过它会很好.

<div>
 <div>Content
 </div>
</div>
<div style="position:absolute;">
 <div style="position:absolute;top:0px;">At top
 </div>
</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法绕过先前定位的绝对元素(使用固定)?一个JavaScript解决方案是可以接受的.

html javascript css position

6
推荐指数
1
解决办法
982
查看次数

在 API 中抽象出对 IMemoryCache 的异步调用

我一直在使用类似于示例 1 的操作来异步缓存 .NET Core API 的 json 结果。MemoryCache是 的一个实例IMemoryCache

示例 1(按预期工作):

[HttpGet]
public async Task<IActionResult> MyAction() =>
    Json(await MemoryCache.GetOrCreateAsync(
        "MyController_MyAction", 
        entry => myService.GetAllAsync()
    ));
Run Code Online (Sandbox Code Playgroud)

Json()和的调用MemoryCache.GetOrCreate()在我的许多操作中重复出现。在我的真实应用中,还有更多重复的实现细节,例如设置AbsoluteExpirationRelativeToNow值和返回NotFound()空值。我想将所有这些抽象到一个共享方法中,以便每个操作仅将其独特的细节传递给共享方法的调用。

为了做到这一点,我为我的操作中的两个变量中的每一个提取了一个变量。例如:

示例 2(缓存既不更新也不检索):

[HttpGet]
public async Task<IActionResult> MyAction()
{
    var task = myService.GetAllAsync();
    const string cacheKey = "MyController_MyAction";
    return Json(await MemoryCache.GetOrCreateAsync(cacheKey, entry => task));
}
Run Code Online (Sandbox Code Playgroud)

下一步是提取一个共享方法,Get()如:

示例 3(不起作用,因为示例 2 不起作用):

[HttpGet]
public async Task<IActionResult> MyAction()
{
    var task = myService.GetAllAsync(); …
Run Code Online (Sandbox Code Playgroud)

c# async-await asp.net-core-mvc asp.net-core

6
推荐指数
1
解决办法
7180
查看次数

.GetProperties()的大O

如果有n个属性,那么.GetProperties O(n)的Big-O还是反射中涉及的过程增加了复杂性?

假设有这个定义的类:

public class Reflector
{
 public string name { get; set; }
 public int number { get; set; }
 public bool flag { get; set; }
 public List<string> etc { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后进行此调用:

var reflect = new Reflector();
PropertyInfo[] properties = reflect.GetType().GetProperties();
Run Code Online (Sandbox Code Playgroud)

什么是时间复杂度,即Big-O .GetProperties()?考虑到有4个属性,这只需要4次迭代还是比它更复杂?或者,是否O(1)具有一些标准的复杂性集到达列表 - 这似乎仍然是O(n)只是为了构建属性数组?

c# reflection getproperties

5
推荐指数
1
解决办法
272
查看次数

哪个jQuery事件处理程序适用于页面加载?

我有一个简单的页面,只是尝试将加载事件附加到文档.我不确定在jQuery中使用哪个事件处理程序来执行此操作.我试着$()$(document).ready.load,但既不似乎在正确的时间运行代码.我应该使用.on,.live?或者有什么我做错了.这是一个示例:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
    $(document).ready(
        showWidth()
    );
    function showWidth() {
        alert($('#textTitle').width());
    }
</script>
</head>
<body>
<div class="page">
        <div id="title">
            <h1 id="textTitle">yo</h1>
        </div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

当我运行此警报显示null.

javascript jquery onload-event

5
推荐指数
1
解决办法
6793
查看次数

SelectList文本中的多个值

我试图在dropdownlist文本中显示多个值.下面举例说明.

SelectList(Parts, "pno", "pcode"+"pname")
Run Code Online (Sandbox Code Playgroud)

哪里

pno 是部件号.

pcode 是部分代码.

pname 是部分名称

现在请告诉我如何使用viewmodel连接部分代码和名称(我想使用域模型来实现).

c# asp.net-mvc-3

5
推荐指数
1
解决办法
4303
查看次数