小编ddd*_*ddd的帖子

将字典传递给控制器​​asp.net mvc

我想<int,int>通过Ajax帖子将类型字典传递给我的控制器.这里的主要原因是这里的帖子可能有1-3个键值对(这些值在编译时都不知道),并且将来可能会达到5.

同样在帖子中我必须传递一些其他数据,例如Id和name,这些数据都正常.

我将如何在javascript中构建这个词典,然后通过JQuery帖子发送它,最后在控制器上接收它来处理?

编辑2:我决定用每个值的帖子解决这个问题,而不是试图传递字典.

编辑:这是我的功能来源,所以你可以看到我在尝试:

function BindAddMenuItem() {
        $(".AddMenuItem").click(function (e) {
            e.preventDefault();

            //get header id from link by removing addmenuitem from this.id
            var currentId = $(this).attr("id").replace("AddMenuItem", "");

            //get itemnumber, itemname, itemdetails from textboxes with same header id
            var restaurantId = jQuery.trim($("#RestaurantId").val());
            var itemNumber = jQuery.trim($("#ItemNumber" + currentId).val());
            var itemName = jQuery.trim($("#ItemName" + currentId).val());
            var itemDetails = jQuery.trim($("#ItemDetails" + currentId).val());

            var costs = new Object();
            //select all textboxes with class "Header" + currentId
            $(".Header" + currentId).each(function (i) {
                var …
Run Code Online (Sandbox Code Playgroud)

javascript c# ajax asp.net-mvc dictionary

18
推荐指数
2
解决办法
3万
查看次数

帮我提出一个部署策略

所以我有一个我正在开发的ASP.NET MVC网站,从来没有一个像样的部署策略,因此进行更改,特别是数据库方案可能涉及很多步骤和时间.

以下是我正在寻找的步骤,并希望了解如何操作或工具(最好免费).随意指出任何遗漏的步骤或我做错的事情.

编辑:我将列出我用来解决每个阶段的工具

  1. 查看源代码管理中的所有代码(perforce)
  2. 构建调试和版本.发行版需要web.config中的不同连接字符串.(MSBUILD)
  3. 运行所有单元测试
  4. 对于每个页面(aspx),将所有引用的JS文件和内联代码组合到一个文件中.与css相同
  5. 缩小所述JS和CSS文件.
  6. 备份实时数据库架构和数据
  7. 将数据库架构更改部署到实时服务器
  8. 上传所有新的或已更改为服务器的文件.
  9. 将所有代码和我的源代码控制存储库备份到外部驱动器,并可能在线.

我很幸运,我的网站在凌晨1点到4点之间没有任何访问者所以这一切都可以在不需要登台服务器等的情况下完成吗?

我知道我的问题很长,但这可能对很多人有所帮助.

asp.net deployment asp.net-mvc

9
推荐指数
1
解决办法
533
查看次数

jquery getJson没有将任何值传递给控制器

我试图将一些文本从文本框传递到控制器,以获得JSON结果

function invokeAction() {
        var searchText = $("#SearchTextBox").val();

        // Invoke MVC controller action
        $.getJSON("/Home/Results/" + searchText, bindResults);
    }
Run Code Online (Sandbox Code Playgroud)

如果我在此处发出提醒,我可以看到searchText肯定有一个值,但是当我在此控制器操作上设置一个断点时:

 public ActionResult Results(string search)
    {
        var r = from t in db.Restaurants
                where SqlMethods.Like(t.Name, "%" + search + "%") || SqlMethods.Like(t.Postcode, search + "%") || SqlMethods.Like(t.CuisineType.Type, search + "%")
                orderby t.Name ascending
                orderby t.Rating descending
                orderby t.NumOfViews
                    descending
                select t;

        return Json(r.ToList());
    }
Run Code Online (Sandbox Code Playgroud)

传入的字符串为null,但是当我在调试器中检查http上下文时,我的searchtext是url的一部分.

由于这是null,查询不返回任何结果.

我在这里错过了什么吗?

asp.net asp.net-mvc jquery json

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

从ASP.NET MVC中的部分视图中删除逻辑

我知道视图中不应该包含代码,但在我正在处理的项目中,我在视图中有很多逻辑.

我的主页有

<% Html.RenderPartial("SearchResults"); %>
Run Code Online (Sandbox Code Playgroud)

现在在局部视图中,我有很多这样的逻辑;

<div id="RestaurantsList">
<%if (Model.restaurantsList.Count() > 0)
{
    foreach (var item in Model.restaurantsList)
    { %>
        <% Html.RenderPartial("SearchResult", item); %>

    <%
    } %>
<%
}
else
{
    Html.RenderPartial("NoResults");

} %>
Run Code Online (Sandbox Code Playgroud)

现在我可以让家庭控制器返回一个基于列表为空的不同视图,但我真的不想这样,因为索引视图有一些我想要显示的东西,无论是否有结果.

我能想到的另一件事就是将它封装在一个辅助方法中,比如Html.SearchResults.但是我需要帮助器来为每个搜索结果调用renderPartial.这似乎不是关心的干净分离.

我仍然需要在局部视图中使用第一个if语句.

你最好怎么处理这个?

asp.net-mvc refactoring partial-views

7
推荐指数
2
解决办法
1191
查看次数

单元测试项目中的连接字符串,用于引用app_data文件夹中的数据库

我希望在我的单元测试项目中引用我的数据库文件.这是一个ASP.NET MVC应用程序.

请注意:我知道我不应该在我的单元测试中访问数据库,但这是为了快速修复我需要通过的一个测试.

在下一个里程碑之后,我将嘲笑数据库访问方法等.

所以这是我的mvc app web config中的连接字符串和单元测试ap.config文件

<add name="DBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB.MDF;Integrated Security=True;User Instance=True"
  providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我收到一个错误:

Test method
ED.Tests.Controllers.CandidateControllerTest.PersonalDetailsStepPostShouldRedisplayIfNoSurnameSupplied 
threw exception:  System.Data.SqlClient.SqlException: 
An attempt to attach an auto-named database for file C:\Users\Desktop\ED\TestResults\LAPTOP-D 2009-07-22 18_16_20\Out\DB.MDF failed. 
A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.
Run Code Online (Sandbox Code Playgroud)

在我看来,连接字符串是错误的,但我不知道如何正确设置路径.我试过添加\ ..\..和目录名等.

asp.net-mvc unit-testing connection-string

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

使用ASP.NET MVC和AJAX进行实时搜索

我想在我的MVC应用程序中实现类似于此网站的实时搜索,当您输入问题并且结果与http://www.krop.com/上的搜索类似或类似时

我有搜索代码全部工作和结果更新.我只需要知道如何将AJAX添加到MVC框架(我知道这个站点是使用它构建的),这样当我输入结果时会更新.

我有这一切都在普通的ASP.NET Forms应用程序中工作.

ajax asp.net-mvc livesearch

6
推荐指数
1
解决办法
6120
查看次数

带有LINQ和SQL数据库的ASP.NET MVC TDD

我正在尝试用测试开始一个新的MVC项目,我认为最好的方法将有2个数据库.1用于测试和1用于我运行应用程序并使用它(也测试真的因为它还没有生产).

对于测试数据库,我考虑在测试设置方法中放置create table脚本和填充数据脚本,然后在拆卸方法中删除所有这些.

我将使用Linq to SQL但我不认为这会允许我这样做吗?

如果我想这样做,我是否必须去ADO路线?或者我应该只使用模拟对象并将数据存储为数组或什么?

关于最佳实践的任何提示?

杰夫是如何为StackOveflow做这件事的?

sql linq tdd asp.net-mvc

6
推荐指数
1
解决办法
2103
查看次数

发布表单并重定向到操作ASP.NET MVC

我有一个导航栏,使用JQuery在注册过程的4个阶段之间移动.

但是,我需要确保所有内容都与JS禁用.

所以我在页面底部有这4个链接图像,我需要这样,如果单击它,它会发布到当前操作,这样我就可以保存所有表单数据,然后重定向到下一个阶段.

重定向很简单,因为我只是在路由或表单中传递参数,但我不知道如何使用动作链接发布方法.

我可以为图像背景等放置4个不同的提交按钮,但这感觉不对.

有任何想法吗?

asp.net-mvc

6
推荐指数
1
解决办法
3205
查看次数

2个邮政编码之间的距离

我正在使用Google Maps API来获取2个英国邮政编码之间的距离.

var yourPostcode = $("#YourPostcode").val();
        var restaurantPostcode = $("#Postcode").val();

        var point1 = GetPointFromPostcode(yourPostcode);
        var point2 = GetPointFromPostcode(restaurantPostcode);

        var distance = point1.distanceFrom(point2, 3959).toFixed(1);
Run Code Online (Sandbox Code Playgroud)

但是,GetPoint函数异步调用Google API,因此在计算时间距离时,第1点和第2点尚未设置(我相信这是发生了什么?)

我还在每个语句之后发出警报来检查变量的值,并且这样做我得到了正确的值,等待我点击确定必须给它足够的时间来获得结果吗?虽然它不再这样做了:(

这是获取点功能

function GetPointFromPostcode(postcode) {
    var point;
    localSearch.execute(postcode + ", UK");
    if (localSearch.results[0]) {
        var resultLat = localSearch.results[0].lat;
        var resultLng = localSearch.results[0].lng;

        point = new GLatLng(resultLat, resultLng);

    } else {
        $(".PostcodeError").append("Postcode Invalid");
    }
    return point;
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以在本地搜索时设置回调,以便在结果返回时调用,但问题是这里有2次搜索.

我想要的是在BOTH搜索返回结果后才调用计算距离线.

你知道怎么做吗?

谢谢

javascript jquery google-maps geocoding

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

如何将字符串传递给ASP.NET MVC中的部分视图?

我有一个搜索页面,如果列表中有结果,它会将此列表传递给视图.但是,如果没有结果,我想将搜索到的文本发送到找不到结果的视图.我该怎么做?

asp.net-mvc

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

JQuery AJAX发布到asp.net webmethod永远不会被调用

我在我的一个aspx页面中有一个web方法:

[WebMethod]
public static string AddDebt(int userId, int type, string description, float amount)
Run Code Online (Sandbox Code Playgroud)

在aspx页面中我有JQuery

$(".addDebt").click(function (e) {
            e.preventDefault();
            var userId = $("[id$='txtUserId']").val();
            var type = $("[id$='ddlExistingDebtType']").val();
            var description = $("[id$='txtExistingDebtLender']").val();
            var amount = $("[id$='txtExistingDebtAmount']").val();

            var results = new Array();
            results.push({ userId: userId });
            results.push({ type: type });
            results.push({ description: description });
            results.push({ amount: amount });
            var dataString = JSON.stringify(results);
            $.ajax(
            {
                type: "POST",
                url: "register_borrower_step4.aspx/AddDebt",
                data: dataString,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (result) {
                    $(".pDebtsTable").text(result);
                }
            });

        }); …
Run Code Online (Sandbox Code Playgroud)

jquery ajax.net webmethod

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

如果表单ASP.NET MVC出错,则重新显示输入详细信息

我已经解决了这个问题2天了,这是一个容易出问题的问题,即使将其与其他有效的项目进行比较,我也无法看到代码中的错误.

你能帮忙吗?

我正在使用ASP.NET成员资格和使用ASP.NET MVC生成的帐户控制器类来处理我网站的帐户部分.

但是,当注册并且用户将某些字段留空时,输入的文本在重新显示页面时不会显示.

这是注册后发布行动

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Register(FormCollection formValues)
    {

        ViewData["PasswordLength"] = MembershipService.MinPasswordLength;

        if (ValidateRegistration(formValues))
        {

            // Attempt to register the user
            MembershipCreateStatus createStatus = MembershipService.CreateUser(formValues["username"], formValues["password"], formValues["email"]);

            if (createStatus == MembershipCreateStatus.Success)
            {
                FormsAuth.SignIn(formValues["username"], false /* createPersistentCookie */);

                return RedirectToAction("CreateCustomer", "Account");
            }
            else
            {
                ModelState.AddModelError("_FORM", ErrorCodeToString(createStatus));
            }
        }

        // If we got this far, something failed, redisplay form
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

和ValidateRegistration功能

 private bool ValidateRegistration(FormCollection formValues)
    {
        if (String.IsNullOrEmpty(formValues["userName"]))
        {
            ModelState.AddModelError("username", "You must specify a username.");
        }
        if …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-membership

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