我在"Global.asax"文件中声明了Session变量,
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
int temp=4;
HttpContext.Current.Session.Add("_SessionCompany",temp);
}
Run Code Online (Sandbox Code Playgroud)
并希望将此会话变量用于我的控制器的操作,
public ActionResult Index()
{
var test = this.Session["_SessionCompany"];
return View();
}
Run Code Online (Sandbox Code Playgroud)
但是我在访问会话变量时遇到异常.请帮我解决这个问题,如何将会话变量访问到我的控制器的Action中.
我正在一个异常就像
"Object Reference not set to an Insatance of an object"
在Application_Start上线的Global.asax
HttpContext.Current.Session.Add("_SessionCompany",temp);
Run Code Online (Sandbox Code Playgroud) 我想将数据从Kendo Grid发布到服务器,并将其保存到数据库中.
为此,我使用了这样的形式:
@using (Html.BeginForm("MainDocumentSave","Document"))
{
<div class="row-fluid">
<div class="span10">
@(Html.Kendo().Grid<Invoice.Models.ViewModels.SegmentViewModel>()
.Name("Segment")
.TableHtmlAttributes(new { style = "height:20px; " })
.Columns(columns =>
{
columns.Bound(p => p.AirlineShortName).EditorTemplateName("AirlineEditor").Title("Airline").ClientTemplate("#=AirlineName#").Width(5);
columns.Bound(p => p.DepartureDate).Width(9);
columns.Bound(p => p.Arrives).EditorTemplateName("ArrivalLocation").Title("Arrival").ClientTemplate("#=Arrives#").Width(5);
columns.Bound(p => p.ArrivalDate).Width(7);
columns.Bound(p => p.FlightNumber).Width(8);
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Navigatable()
.Sortable()
.Scrollable(scr => scr.Height(200))
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Events(events => events.Error("error_handler"))
.Model(model => model.Id(p => p.AirlineName))
.Create("Editing_Create", "Grid")
.Read("Segment_Read", "Document")
.Update("Editing_Update", "Grid")
.Destroy("Editing_Destroy", "Grid")
)
)
</div>
</div>
<button type="submit" class="btn btn-primary"> Save Segments</button>
} …Run Code Online (Sandbox Code Playgroud) asp.net-mvc asp.net-mvc-3 kendo-ui kendo-grid kendo-asp.net-mvc
我正在使用Kendo Autocomplete,因为我正在填写Text并使用该文本解析数据,但我想使用ID作为Value在Form Submit上的服务器端发送它.
我正在使用这个Kendo编辑器但是无法将"CustomerID"绑定为自动完成的值::
@(Html.Kendo().AutoComplete()
.Name("Customers")
.DataTextField("CustomerShortName")
.Value("CustomerID")
.Filter("contains")
.MinLength(3)
.Template("<label>${ data.CustomerShortName }</label>")
.HtmlAttributes(new { disabled="disabled" })
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCustomers", "GetData");
})
.ServerFiltering(true);
})
)
Run Code Online (Sandbox Code Playgroud)
请尽快帮助我.
我想在Kendo Grid中添加新行,它在First Cell中具有默认值.如何在添加的Kendo Grid行中设置默认值
我在Kendo Grid中添加了New Row ::
$('#AddSingleSuppliment').click(function () {
grid.addRow();
});
Run Code Online (Sandbox Code Playgroud)
但我想在Clicked DOM元素的值的基础上设置第一个单元格的值,Like
$('#AddSingleSuppliment').click(function () {
var temVal=$(this).text();
grid.addRow(tempVal);
});
Run Code Online (Sandbox Code Playgroud)
但我们不能以那种方式去做.所以,请帮助我,在Kendo Grid中添加New Row,单击一个具有按钮值的单元格.
现在我可以在Kendo Grid中添加新行了,
$("#AddSingleSupplement").click( function(){
var tempSupplement = $(this).val();
//alert(tempSupplement);
grid.addRow(tempSupplement);
grid.dataSource._data[0].Description = $(this).text().trim();
});
Run Code Online (Sandbox Code Playgroud)
但是在添加新行时没有直接显示值.点击其他元素后显示.请建议我这个是正确的方法,或者除此之外还有其他任何方式.
我想将查询字符串隐藏到我的控制器的操作中。
在我的应用场景中是这样的:
1)我已在新窗口中打开新操作:
var check="Particular String"
var url = rootUrl("Home/Preview?Docs=" + check);
window.open(url, '_blank');
Run Code Online (Sandbox Code Playgroud)
2)在控制器方面,我在控制器的操作中使用了一些代码,如下所示:
public ActionResult Preview(string Docs)
{
TempData["Docs"] = Docs;
return RedirectToAction("UnInvoicedPreview");
}
Run Code Online (Sandbox Code Playgroud)
我的查询::1)打开新窗口时,它在开头显示查询字符串(直到它不重定向到另一个操作时)。
2) 我不想在 URL 中显示 QueryString。
3)有什么方法可以隐藏查询字符串或者我们可以加密它吗?
是否可以调用在函数外部设置的相同名称变量?
var a = $(window).width(); // I want to call this variable
if(!$.isFunction(p)){
var a = $(window).height(); // Not this one
alert(a);
}
Run Code Online (Sandbox Code Playgroud)
我对mvc3中的验证有疑问.内置验证看起来很棒.但是,我必须在一个案例中使用javascript,导致它与外观和感觉不一致(警报窗口与漂亮的红色文本).我们有一个表单,其中包含一些用于用户输入的字段.提交时,一些ajax代码会触发一个链接,该链接映射到一个控制器方法,该方法接受从表单提交的值并启动导致创建客户端数据库的进程.问题是:对字段(长度,字符等)进行验证的最佳方法是什么,因为没有模型直接映射到该表单上的字段?我的解决方案是编写一些javascript函数,但是有更简洁的方法吗?
<td>@Html.TextBox("NewClientId")</td>
...
<script language="javascript">
function ValidateFieldLength(min, max, element) {
var len = element.value.length;
if (len < min || len > max)
return false;
else {
return true;
}
}
function createNewClient() {
if (!ValidateFieldLength(3,3,document.getElementById('NewClientId'))) {
alert("Invalid Client ID length");
return;
}
$.ajax({
url: '/api/Clients',
type: 'PUT',
data: JSON.stringify({
ClientId: $('#NewClientId').val(),
Name: $('#NewClientName').val()
}),
contentType: 'application/json; charset=utf-8',
success: function (reponse) {
//alert(reponse.data.model.Id);
alert("Database created");
},
error: function (err) {
alert(err);
}
});
}
Run Code Online (Sandbox Code Playgroud) 我有一个Kendo Grid ::
@(Html.Kendo().Grid<Models.PassengerGrid>()
.Name("Passenger")
.Columns(columns =>
{
columns.Bound(x => x.PassengerID).Hidden(true);
columns.Bound(x => x.Name).Title("Name").Width(500).Encoded(true);
columns.Command(command => { command.Edit(); command.Destroy(); });
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(5)
.ServerOperation(true)
.Model(model => { model.Id(p => p.PassengerID); })
.Read(read => read.Action("PassengerDetailTemplate", "GetData"))
.Create(update => update.Action("EditingPopup_Update", "Grid"))
.Update(update => update.Action("EditingPopup_Update", "Grid"))
.Destroy(update => update.Action("EditingPopup_Destroy", "Grid"))
)
)
Run Code Online (Sandbox Code Playgroud)
我在其中使用Javascript手动添加新行::
var Grid = $("#Passenger").data("kendoGrid");
var datasource = Grid.dataSource;
datasource.add({
PassengerID: response.PassengerID,
Name: response.Name
});
datasource.sync();
Run Code Online (Sandbox Code Playgroud)
但问题是当我尝试编辑并在编辑时按下取消按钮,然后该行将从网格中删除.
我已经提到了这个问题链接 …
我已经SignalR在我的应用程序中使用了基于服务器广播的刷新部分Hub.
但在这里,我遇到了一个问题,即Client pings连接每隔5分钟.这导致数据消失.我不想使用这个SignalR Ping,因为我已经在服务器端向使用代码的所有客户端广播::
Clients.All.BroadcastNewsCount(ValidNewsCount, SelectedCompany, TypeOfOperation);
Run Code Online (Sandbox Code Playgroud)
以下是Ping ::的屏幕截图

asp.net-mvc ×8
javascript ×5
jquery ×5
kendo-ui ×4
c# ×3
kendo-grid ×3
c#-4.0 ×1
html-helper ×1
query-string ×1
session ×1
signalr ×1
variables ×1