我有一个动态填充的表FullCalendar.问题是FullCalendar不关心它的原始顺序.
该表如下所示:
<table id="caltbl">
<thead>
<tr> <th> </th> <th> Date </th> <th> hours </th> ... </tr>
</thead>
<tbody>
<tr> <td class="sortnr">1</td> <td></td> ... </tr>
<tr> <td class="sortnr">3</td> <td></td> ... </tr>
<tr> <td class="sortnr">2</td> <td></td> ... </tr>
<tr> <td class="sortnr">4</td> <td></td> ... </tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
每行的第一行包含表应该排序的数字.
我有这个代码来排序它:
var rows = $('#caltbl > tbody').children('tr').detach();
for (var counter = 1; counter<=rows.length; counter++) {
$(rows).each(function(index) {
if ($(this).find(".sortnr").text()==counter){
$('#caltbl > tbody:last').append($(this));
}
});
}
Run Code Online (Sandbox Code Playgroud)
这在Firefox中运行良好,但在Internet Explorer中引起了我的一个主要问题,因为有超过500个项目并且它挂起.我可以添加一个,setTimeout但这不会解决真正的问题.排序很慢.什么是更快的排序方式?
而不是必须从 …
我有一张登记表,用户必须输入他们房子的面积.我希望这个值只是一个整数.有没有办法使用属性asp.net mvc验证此值?
非常有名的ActionLink:
<%: Html.ActionLink("Back to List", "Index")%>
Run Code Online (Sandbox Code Playgroud)
现在,此链接位于我的详细信息视图中.索引视图是搜索页面.其URL如下所示:
http://localhost:50152/2011-2012/Instelling/Details/76?gemeente=Dendermonde&postcode=92**&gebruikerscode=VVKSO114421&dossiernr=114421%20&organisatie=CLB
Run Code Online (Sandbox Code Playgroud)
如你所见,相当多的参数.显然我想在返回索引页面时保留所有这些参数,所以我需要将它们添加到ActionLink.
现在,我已经厌倦了手动操作,它可以1,但不适用于6.这应该会更容易.
问题:如何将当前URL的所有参数都返回ActionLink为可选RouteValues.
我一直在寻找Request.QueryString.它必须是那样的东西.我在考虑编写一些静态方法Global.asax来完成工作,但还没有运气.也许有一种简单的方法可以做到这一点我不知道?
编辑:这是我想出的(哪个有效)
在global.asax中:
public static RouteValueDictionary optionalParamters(NameValueCollection c) {
RouteValueDictionary r = new RouteValueDictionary();
foreach (string s in c.AllKeys) {
r.Add(s, c[s]);
}
return r;
}
Run Code Online (Sandbox Code Playgroud)
Details.aspx:
<%: Html.ActionLink("Back to List", "Index", MVC2_NASTEST.MvcApplication.optionalParamters(Request.QueryString))%>
Run Code Online (Sandbox Code Playgroud)
我最好把这段代码放在哪里?不是Global.asax我猜...
编辑2:
using System;
using System.Web.Mvc;
namespace MVC2_NASTEST.Helpers {
public static class ActionLinkwParamsExtensions {
public static MvcHtmlString CustomLink(this HtmlHelper helper, …Run Code Online (Sandbox Code Playgroud) 我正在使用ASP.Net MVC开发我的第一个Web应用程序,我处于这样一种情况,我希望后台服务处理应用程序之外的状态通知,与stackoverflow上的信誉/徽章系统不同.
处理这样的事情的最佳方法是什么?它甚至可以在我使用的Godaddy之类的共享托管环境中实现.
我不需要直接与后台工作程序通信,因为我将通知记录添加到数据库表中,并将列设置为"未处理"状态.然后,工作人员将定期扫描表格并处理准备好的内容.
谢谢你的建议.
我正在将一个ASP.NET应用程序移植到MVC,并且需要存储与认证用户相关的两个项目:角色列表和可见项目ID列表,以确定用户可以看到或看不到的内容.
我们过去曾使用WSE和Web服务,这使得事情变得异常复杂,无法正常调试.现在,我们正在放弃我正在寻求的Web服务,以简单地简化解决方案,只是为了将这些东西存储在会话中.一位同事建议使用角色和成员资格提供者,但在研究这个问题时我发现了一些问题:
a)它遇到了与WSE类似但不同的问题,因为它必须以非常有限的方式使用,即使编写测试它也很棘手;
b)RolesProvider唯一的缓存选项基于我们因安全原因而拒绝的cookie;
c)它引入了并发症和额外不必要的行李;
简而言之,我们想要做的就是在用户的会话中存储两个字符串变量或以安全的方式存储等价物,并在需要时引用它们.到目前为止,似乎是一个十分钟的工作需要花费几天时间进行调查,并且为了解决我们现在发现会话ID显然是伪造的问题,请参阅
http://blogs.sans.org/appsecstreetfighter/2009/06/14/session-attacks-and-aspnet-part-1/
我一直认为没有简单的方法来完成这项非常简单的工作,但我发现无法相信.
谁能:
a)提供有关如何使ASP.NET MVC会话安全的简单信息,因为我一直认为它们是安全的?
b)建议另一种简单的方法来为登录用户的角色等存储这两个字符串变量,而不必像上面所描述的那样用另一个替换一个复杂的噩梦?
谢谢.
这就是事情.我有一个编辑视图,当我打开它时,它不会绑定下拉列表的值.
[NonAction]
public List<SelectListItem> VraagType() {
List<SelectListItem> l = new List<SelectListItem>();
SelectListItem a = new SelectListItem();
SelectListItem b = new SelectListItem();
a.Text = "Meerkeuze";
a.Value = "M";
b.Text = "Open";
b.Value = "O";
l.Add(a);
l.Add(b);
return l;
}
[NonAction]
public List<SelectListItem> getSchalen() {
return _db.EvalSchaals.ToList().ToSelectList(q => q.Sch_Naam, q => q.Sch_ID.ToString(), q => q.Sch_ID == -1).ToList();
}
public ActionResult Edit(int id) {
ViewData["vraagtype"] = VraagType();
ViewData["schaal"] = getSchalen();
EvalVragenBlok evb = _db.EvalVragenBloks.First(q => q.Vrbl_ID == id);
List<EvalVragen> ev = _db.EvalVragens.Where(q => …Run Code Online (Sandbox Code Playgroud) 我有一个在2台服务器上运行的项目.1个testserver与testDB连接,1个在真实服务器上,与真正的DB连接.
这个项目的每个运行实例中唯一不同的是web.config.
我想做的是有可能在web.config中设置一个bool值,然后可以通过代码读取.如果应用程序处于测试模式,则此bool将为true.我会手动设置它,然后项目会把它读出来,当它确实是,应用程序发送的邮件,然后将保留在内部,所以人们实际上不会收到邮件.我之前设置了一个public static boolin global.asax但是在Asp.net MVC中,所有内容都内置在一个DLL中,所以在这种情况下我无法在部署的服务器上更改它.
这可能吗?还是会有一个很好的其他解决方案?
CSS:
.flyoutdialog
{
position: absolute;
top:0;
left:0;
border: 1px solid #CCC;
background-color: white;
width: 250px;
padding: 10px 10px 10px 10px;
}
Run Code Online (Sandbox Code Playgroud)
jQuery :(对话框是$(".flyoutdialog")的1项,按钮是1项$(".flyouticon"))
var offset = button.offset();
alert("top: " + offset.top + " left: " + offset.left);
// dialog.offset({ top: offset.top - 5, left: offset.left + 25 });
dialog.css("top", offset.top - 5 + "px");
dialog.css("left", offset.left + 25 + "px");
dialog.show("blind", { direction: "horizontal" }, 1000);
var off2 = dialog.offset();
alert("top: " + off2.top + " left: " + …Run Code Online (Sandbox Code Playgroud) 我没有完全掌握一些角色.使用该[Authorize]属性
当您拥有[Authorize]控制器上的属性和操作时:
我明白了,那是合乎逻辑的.您需要先访问控制器才能运行操作.
我没有得到的是为什么这不起作用:
[Authorize(Roles = "Algemeen Beheer, Admin, Coordinator, Secretariaat")]
public class FacturatieGegevensController : Controller {
[Authorize(Users = "Stefan.coordinator", Roles = "Algemeen Beheer, Admin")]
public ActionResult Create(int instID) {
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
当我Stefan.coordinator以具有该角色的用户身份登录时coordinator,我可以访问控制器,但是我无法访问"创建操作".我认为这将是Users和之间的OR关系Roles.不是吗?以及如何让它工作?
所以我想说我有两种模式:Thingy和Status. Thingy有一个Status,而且Status有许多Thingies.它是典型的"对象和对象类型关系".
我有一个观点,我只想要每个状态中的东西数量.或者基本上是Status.Name和Status.Thingies.Count的列表.我可以做到这一点,但是在表单中创建视图模型是" 正确 "的事情:
ThingiesByStatusViewModel
-StatusName
-StatusThingiesCount
Run Code Online (Sandbox Code Playgroud)
并使用类似AutoMapper的东西将其连接起来.
对于这样一个微不足道的例子,它可能没有太大的区别,但它可以帮助我更好地理解正确的"关注点分离".
asp.net-mvc ×8
asp.net ×3
c# ×2
jquery ×2
roles ×2
actionlink ×1
css ×1
html-table ×1
int ×1
javascript ×1
performance ×1
routevalues ×1
session ×1
sorting ×1
viewmodel ×1
web-config ×1