我想发一些问题ASP.Net MVC.我不熟悉Web开发,但我被分配到项目的Web部分.我们正在执行以下操作:首先,我们为人员数据创建get&set属性:
public class Person
{
public int personID {get;set;}
public string personName {get;set;}
public string nric {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
登录后,我们将数据放在一个类Person对象中,我们使用RedirectToAction如下:
return RedirectToAction("profile","person",new { personID = Person.personID});
Run Code Online (Sandbox Code Playgroud)
它正常工作,但参数显示在URL中.我怎样才能隐藏它们?我还可以隐藏动作名称吗?请通过一些例子以正确的方式指导我.
我阅读并测试了很多,以找到加密和部署app.config到不同机器的最佳实践.通常,我希望保护来自第三方的连接字符串的内容,并将应用程序部署到不同的计算机上.我不会手动配置每台机器.
我知道有几种方式:
Aspnet_Regiis(RSAProtectedConfigurationProvider,DPAPIProtectedConfigurationProvider)绑定到计算机,用户或自定义.RSA加密密钥.
System.Security.Cryptography.ProtectedData 绑定到机器或用户.
app.config在第一次执行时加密.哪个不安全.
您建议什么或app.config通过设置或复制和粘贴来加密和向不同机器提供应用程序的最佳做法是什么?
我需要在JavaScript中模拟调用函数.为此,我将函数"保存"在临时变量中,使用新的功能块更新目标,调用目标然后恢复旧函数:
var myObject = {
myIntProp: 1,
myFunc: function(value) {
alert(value + 1);
}
};
myObject.myFunc(2);
var tmp = myObject.myFunc;
myObject.myFunc = function(value) {
alert(value - 1);
};
myObject.myFunc(2);
myObject.myFunc = tmp;
myObject.myFunc(2);Run Code Online (Sandbox Code Playgroud)
这按预期工作:函数被覆盖然后成功恢复.我的想法是将此代码移动到辅助函数中,并在需要时轻松使用它:
function FunctionSwapper(target, newFunction) {
var old = target;
target = newFunction;
this.Restore = function() {
target = old;
}
};
var myObject = {
myIntProp: 1,
myFunc: function(value) {
alert(value + 1);
}
};
myObject.myFunc(2);
var swapp = new FunctionSwapper(myObject.myFunc, function(value) {
alert(value - 1);
}); …Run Code Online (Sandbox Code Playgroud)我有一个flex布局,有两个flex项,显示为rows(flex-direction: column).这些物品应具有最小高度,但它们应保持与其中一个物体需要生长的高度相同.看到这个小提琴并减小结果窗格的宽度; 这会强制第二个.component元素增加其高度,但第一个.component元素的高度保持不变.
是否可以强制柔性物品保持相同的高度?请注意,主要的是两个.component元素的堆叠,这是我无法实现的flex-direction: column; flex-direction: row可能会使相同的高度成为可能,但堆叠不起作用.
这是我到目前为止的结果:
div {
border: 1px solid black;
box-sizing: border-box;
}
.container {
display: flex;
flex-direction: column;
align-content: stretch;
}
.component {
min-height: 300px;
}
.left {
margin-left: 50px;
margin-top: 50px;
margin-right: 100px;
background-color: lightyellow;
}
.right {
margin-left: 100px;
margin-top: -250px;
margin-right: 50px;
background-color: lightgreen;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="component left">
</div>
<div class="component right">
<p>
Lorem ipsum dolor sit …Run Code Online (Sandbox Code Playgroud)我有以下简单的标记和样式(请参阅JSFiddle):
HTML:
<div id="wrapper"><div id="content"></div></div>
Run Code Online (Sandbox Code Playgroud)
CSS:
#content {
background-color:lightyellow;
height:200px;
color:green;
}
#wrapper{
border:1px solid black;
color:red;
}
Run Code Online (Sandbox Code Playgroud)
我正在#content div使用Vanilla JS和jQuery选项设置微调器目标,我遇到了一些问题.首先,在这两种情况下,微调器似乎不是在目标元素的父元素的中间构造的,与文档所说的相反:
定位
从版本2.0.0开始,微调器绝对位于其偏移父级的50%.您可以指定顶部和左侧选项以手动定位微调器.
其次,使用Vanilla JS时,微调器不会使用目标上的颜色集.当使用jQuery启动时,它确实(即#content它使用绿色).
我理解文档错了吗?如果是这样,我如何将微调器置于特定元素内?如果没有,为什么上面的片段不在目标内?
我有一个由div组成的简单表结构:
$(document).ready(function() {
$("button").on("click", function() {
$(".cell").outerWidth(500);
})
})Run Code Online (Sandbox Code Playgroud)
div {
border: 1px solid black;
box-sizing: border-box;
}
.container {
width: 400px;
height: 100%;
padding: 5px;
overflow: auto;
}
.row {
min-width: 100%;
width: auto;
display: inline-flex;
padding: 5px;
margin-bottom: 5px;
border-color: red;
}
.cell {
flex: 0 0 auto;
border-right: 1px solid black;
overflow: hidden;
min-width: 200px;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="row">
<div class="cell">x</div>
</div>
<div class="row">
<div class="cell">x</div>
</div>
<div class="row">
<div class="cell">x</div>
</div>
</div>
<button …Run Code Online (Sandbox Code Playgroud)我在覆盖Object.cshtm模板时发现了一种奇怪的行为.该Object.cshtm迭代的Model特性和"发送"他们合适的模板进行渲染.
foreach (var prop in ViewData.ModelMetadata.Properties)
{
@Html.Editor(prop.PropertyName,
"MyCustomTemplateCollection" + prop.TemplateHint)
//TemplateHint set by custom attributes
}
Run Code Online (Sandbox Code Playgroud)
一切运作良好:模板切换到适当的类型模板,在我可以访问Metadata属性的内部:
string name = ViewData.ModelMetadata.PropertyName;
string controllerName = ViewData.ModelMetadata.ContainerType.Name;
//render property accordingly (using the property information)
Run Code Online (Sandbox Code Playgroud)
但是,如果由于某种原因ViewBag包含与其中一个属性同名的(动态)Model属性,ModelMetadata则不会完全生成; 至少上述ModelMetadata属性设置为null.例如,如果在我设置的控制器中ViewBag.ProductName = myModel.ProductName;,当ProductName属性进入其相应的模板时,元数据不包含"预期"值.
该解决方案很简单:如果,不管出于什么原因,物业需要保存的ViewBag,它必须以不同的名称保存.
我的问题是:如何EditorHelper将数据传递给模板?我不希望这样,ViewData并ViewBag"分享"这些信息.与检查快速监视我可以看到在Non-Public members中的ViewBag一个ViewData这似乎是一样的性质,可以说,一般可用 …
给定以下标记和样式
div {
width: 300px;
height: 50px;
border: 1px solid black;
display: inline-block;
transition: all .1s ease-in-out;
background-color: white;
padding: 0px 5px;
}
div:hover {
transform: scale(1.2);
}
label {
/*position: relative;*/
}Run Code Online (Sandbox Code Playgroud)
<div>
<label>some random text</label>
</div>
<div>
<label>some random text</label>
</div>Run Code Online (Sandbox Code Playgroud)
当将鼠标悬停在第一个元素上时,div第二个元素中的一些字母div将“隐藏”在缩放元素下。但是,当在元素position: relative上设置时label,文本将在缩放后的元素上呈现:
div {
width: 300px;
height: 50px;
border: 1px solid black;
display: inline-block;
transition: all .1s ease-in-out;
background-color: white;
padding: 0px 5px;
}
div:hover {
transform: scale(1.2);
} …Run Code Online (Sandbox Code Playgroud)我有一个元素,我使用伪元素(::after)来设置叠加层的样式.由于技术原因,我不能/不想使用其他元素(例如div)添加叠加层.伪元素绝对定位并出现在实际元素的前面.我惊讶地发现里面的文字div仍然可以选择,"通过"伪元素.我周围玩z-index,并pointer-events没有成功.对于(外部)示例,请参阅此小提琴.
为什么会这样?为什么仍然可以用鼠标选择文本?除此之外还有其他解决方案user-select吗?
div {
position: relative;
}
div::after {
position: absolute;
content: '';
top: 0;
right: 0;
bottom: 0;
left: 0;
opacity: 0.4;
background-color: black;
}Run Code Online (Sandbox Code Playgroud)
<div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam sollicitudin dui nec neque rutrum, eu auctor nulla accumsan. Quisque non eleifend nibh. Fusce aliquet imperdiet odio vitae pretium. Nam tincidunt mattis ante, nec consectetur diam maximus
vel. Fusce …Run Code Online (Sandbox Code Playgroud)考虑一个包含多个元素的网页。在MutationObserver上定义 abody将触发 DOM 中每次更改的回调。
在以下示例中:
<body>
<div>[some content...]</div>
<div>[some content...]</div>
<div id='special'>[]</div>
<script>
function onMutation(objects, instance) { ... }
const body = document.querySelectorAll("body")[0];
const special = document.getElementById("special");
//MutationObserverInit options
const moi = { childList: true, attributes: true, subtree: true };
//create a new mutation observer
const mo = new MutationObserver(onMutation);
//start observing
mo.observe(body, moi);
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
onMutation即使#special元素被更改,该函数也会被调用。但是,在特定情况下,例如大量频繁更改的动态内容和速度未知的浏览器,观察#special元素会对性能产生严重影响。不管这样做的原因是什么,可能需要忽略特定元素的特定突变。
如何(有效地)从观察到的节点列表中“排除”一个(或更多)特定元素?在上面的例子中,除了#special元素之外,页面中的所有元素都必须被观察到。可以通过observe使用不同选项在同一元素上调用函数来覆盖特定元素的行为,但是这种方法在调用已指定观察的元素observe的子元素 ( #special)时不起作用( body) .
我目前看到以下方法,每个方法都有自己的问题/缺点: …
css ×5
html ×3
javascript ×3
asp.net-mvc ×2
c# ×2
flexbox ×2
.net ×1
asp.net ×1
css-position ×1
css3 ×1
encryption ×1
function ×1
jquery ×1
razor ×1
spin.js ×1
templates ×1