我有一个场景,我的ASP.NET Web应用程序的用户提交由文本信息和图像组成的推荐.提交过程包括以下步骤:
这个问题是我不希望在用户实际确认之前将上传的图像存储在数据库中.相反,我将它们存储为临时文件,并在最终确认后将它们放入DB中.
由于我还希望我的应用程序以中等信任的方式运行,因此我只对应用程序目录具有写权限,而且不在外面.我甚至想将ASPNET/NETWORK SERVICE用户的写权限限制在〜/ App_Data文件夹中.我的方案的问题是,一旦在此文件夹中创建了临时文件,应用程序池就会被回收,我不希望每个提示都提交.
您如何建议我保留这些临时文件?如果我更新文件,则不会重新启动池 - 仅在创建或重命名时.但我不认为我可以将整个图像存储在一个文件中供所有用户使用.你怎么看?
更新:我应该注意到我正在使用第三方控件进行上传.它允许我在上传后以编程方式访问文件内容的二进制流,但是在第二次回发后我不能保留它(第一步和回发实际上进行上传).
你的网络开发人员怎么想?我们是否应该禁用在我们的Web应用程序中屏蔽密码框中的粘贴.这可能是一个安全漏洞还是造成混乱或不必要的结果?这可能是一个关于用户体验的问题,而不是编程问题.
您能否列出一些原因可以让您将ASP.NET webforms用于新项目而不是MVC?我已经听过很多关于相反的事情,但不是通过webforms更容易或更好的事情.我不是在谈论开发人员首选项,而是技术功能以及它们如何映射到项目功能.
我知道这听起来像以前被问过的东西,但是对于我所有的狩猎,我找不到任何与我正在寻找的东西相匹配的东西.
我正在开发一个基于Ajax的项目.我正在使用jQuery,但即使它使用精美的代码,当我已经达到代码完全相同时,它仍然很混乱,除了通过data字段传递的单个命令.
所以我尝试在处理函数中设置它,如下所示:
function _call(task, opts, async) {
if(typeof async !== "boolean") { async = true; }
opts = $.extend({}, opts, options);
$.ajax({
url: "myphpfile.php",
dataType:"JSON",
type:"POST",
async:async,
data: { task: task, opts: opts }
}).done(function(data) { return data; });
}
Run Code Online (Sandbox Code Playgroud)
对于那些通读的人,你会注意到有一个var,
options在示例中没有定义.它实际上已被分配,为了清楚起见,它被省略了.
我开始意识到这不起作用,因为即使它被设置async: false,代码仍然在调用之后继续_call(...),因此不能及时得到结果.我尝试了一些不同的变体,包括将匿名函数传递给处理程序,然后将其用作.done()函数,但它不会与外部变量交互,从而无法实现目的.
我正在寻找的是一个让我使用它的系统:
var returnedData = _call("thisismytask");
var returnedDataWithOptions = _call("thisisanothertask", {'option': 'option1'});
Run Code Online (Sandbox Code Playgroud)
我真的希望这是可能的.我确信它会是,因为函数的主要目的是消除不必要的重复代码的需要.
谢谢.:)
当我进入我需要从列表中删除项目的场景时,我正在编写一些ASP.NET控件,只有当它们匹配某个条件时才会这样.
RemoveAll泛型List类的方法做得很好,但删除了与谓词指定的条件匹配的所有项.
如果我只想删除指定条件的特定数量的项目怎么办?您认为最好的方法是什么?
我想使用SQL事件探查器来跟踪在我的数据库中再次执行的查询,跟踪性能等.但是,似乎SQL事件探查器仅在SQL Server 2005的企业版中可用.这是否确实如此,我可以做些什么关于它?
我想在dropdownList中选择一个值时隐藏一些数据.
示例:
当我选择Gender = M时,我不想在我的标题中看到:Mr Only Miss或Madame.
这是我的代码:
@Html.DropDownListFor(m => m.Gender, new[] {
new SelectListItem() {Text = "M", Value = "M"},
new SelectListItem() {Text = "F", Value = "F"},
}, "---Choose Gender---", new { onchange = "Select();" })
@Html.DropDownListFor(m => m.Title, new[] {
new SelectListItem() {Text = "Mister", Value = "Mr."},
new SelectListItem() {Text = "Madame", Value = "Mme."},
new SelectListItem() {Text = "Miss", Value = "Miss."}
}, "---Choose Title---")
Run Code Online (Sandbox Code Playgroud)
在Javascript部分:
function Select() {
// the code.
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!
大家好.我有以下情况.
我想使用TypeDescriptor来获取某种类型的属性.继承层次结构中类型的深度可能会有所不同.我只想获得在类型本身声明的属性,而不是在父类(base)中.问题是,当我调用TypeDescriptor.GetProperties()时,它会将继承层次结构中声明的所有内容返回到Object.
我只看到我可以按属性过滤输出,但我不想为我的类型中的属性添加另一个属性.让他们通过反射而不是使用TypeDescriptor会做我想要的,但对我来说不是一个选项,因为某些属性会在某些时候动态添加到类型中.
有任何想法吗?如果问题不明确,我可以提供一个例子.
我有一个包含所有节点的SiteMap.我正在使用一个TreeView控件,该控件链接到SiteMap进行导航.现在我想隐藏某些节点出现在TreeView上.是否有可能做到这一点?
当用户提交application/x-www-form-urlencoded的表单并且我的网页收到它时,它会将用户重定向到另一个URL.问题是webbrowser不会再次将application/x-www-form-urlencoded发送到新的url.
有没有办法强制webbrowser再次发送application/x-www-form-urlencoded?
function redirectTo(request, response, site){
try {
response.writeHead('302', {'Location': site});
console.log("redirecting to " + site);
}
} catch(ex) {
// the headers were already sent - we can't redirect them
console.error("Failed to send redirect", ex);
}
response.end();
}
Run Code Online (Sandbox Code Playgroud)
这是代码.
asp.net ×3
.net ×2
asp.net-mvc ×2
ajax ×1
c# ×1
file-io ×1
forms ×1
http ×1
javascript ×1
jquery ×1
medium-trust ×1
node.js ×1
onchange ×1
passwords ×1
redirect ×1
reflection ×1
sitemap ×1
sql ×1
sql-server ×1
treeview ×1
webforms ×1