小编Rah*_*hul的帖子

如何在MVC中使用会话变量

我在"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)

c# asp.net-mvc session asp.net-mvc-3 asp.net-mvc-4

14
推荐指数
1
解决办法
7万
查看次数

在表单提交上发布Kendo网格数据

我想将数据从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

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

在自动填充中将ID与文本绑定为值

我正在使用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)

请尽快帮助我.

asp.net-mvc jquery html-helper kendo-ui kendo-autocomplete

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

使用一些默认值在Kendo Grid中添加新行

我想在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)

但是在添加新行时没有直接显示值.点击其他元素后显示.请建议我这个是正确的方法,或者除此之外还有其他任何方式.

javascript asp.net-mvc jquery kendo-ui kendo-grid

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

在 MVC 操作中隐藏查询字符串

我想将查询字符串隐藏到我的控制器的操作中。

在我的应用场景中是这样的:

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)有什么方法可以隐藏查询字符串或者我们可以加密它吗?

c# asp.net-mvc jquery asp.net-mvc-routing query-string

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

声明两个具有相同名称的变量

是否可以调用在函数外部设置的相同名称变量?

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)

小提琴

javascript variables jquery

5
推荐指数
3
解决办法
9838
查看次数

在没有模型的情况下在MVC 3中进行验证

我对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)

javascript asp.net-mvc c#-4.0 asp.net-mvc-4

4
推荐指数
1
解决办法
8216
查看次数

Kendo Grid Edit取消从Grid中删除行

我有一个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)

但问题是当我尝试编辑并在编辑时按下取消按钮,然后该行将从网格中删除.

我已经提到了这个问题链接 …

javascript asp.net-mvc jquery kendo-ui kendo-grid

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

防止SignalR ping

我已经SignalR在我的应用程序中使用了基于服务器广播的刷新部分Hub.

但在这里,我遇到了一个问题,即Client pings连接每隔5分钟.这导致数据消失.我不想使用这个SignalR Ping,因为我已经在服务器端向使用代码的所有客户端广播::

Clients.All.BroadcastNewsCount(ValidNewsCount, SelectedCompany, TypeOfOperation);
Run Code Online (Sandbox Code Playgroud)

以下是Ping ::的屏幕截图 在此输入图像描述

javascript c# asp.net-mvc signalr

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