小编Dav*_*ich的帖子

卸载MVC 4 RC后难以安装MVC 3

最近开始了一个新项目并计划使用MVC 4.在没有安装MVC 3的情况下安装MVC 4 RC的错误.

在阅读其他用户遇到的问题后,卸载了MVC 4并尝试安装MVC3.

我使用平台安装程序来安装MVC 3但是反复遇到一些关于MVC 3的某些部分无法安装的错误消息(平台安装程序的详细报告没有帮助).

我卸载并重新安装了Visual Studio 2010 Enterprise,并尝试两次安装MVC 3.第二次只是为了向别人展示错误.

我尝试了第三次安装,所以我可以将错误复制到Stack Overflow以获得洞察力.

令人震惊的是,这次成功了.

一方面我很高兴有一个"成功"安装,另一方面我很紧张,可能仍然有些不对劲.

我知道我没有给予太多的帮助,但我想知道是否有其他人遇到过这个序列或类型的问题?我知道Microsoft开发人员会关注此站点.任何人都可以指出从我的环境中"清理"MVC 4 RC可能需要的任何其他步骤吗?

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

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

通过AJAX发送ASP.NET模型

我正在尝试通过ajax调用发送模型的一部分,但这样做就像下面的代码一样,不起作用.我怎么能传递这个对象?

$.ajax({
            url: "/Controller/Action",
            type: "GET",
            data: @Model.Company,
            success: function (result) {
            $('#myDiv').html(data);
        }
});
Run Code Online (Sandbox Code Playgroud)

这就是我的JS推出的内容:

MyProj.Domain.Entities.Company
Run Code Online (Sandbox Code Playgroud)

这是我的错误:

Uncaught ReferenceError: MyProj is not defined 
Run Code Online (Sandbox Code Playgroud)

javascript ajax asp.net-mvc jquery asp.net-mvc-3

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

显示JSON返回的错误消息

我需要显示Json返回的消息.

在控制器中,抛出异常并捕获到catch块中.我正在返回错误错误消息.

Ajax中,成功部分始终执行.但如果是从我的错误web服务,我不想执行正常; 相反,我想显示一条错误消息.

我怎么能做到这一点?

我的代码如下:

调节器

[HttpPost]
public JsonResult DeleteClientRecord()
{

    bool result = true;
    try
    {
        result = ClientCRUDCollection.DeleteClient(deleteClientId);

    }
    catch (Exception ex)
    {

        return Json(ex.Message, JsonRequestBehavior.AllowGet);
    }

    return Json(new { result }, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

AJAX呼叫

$("#YesDelete").click(function () {
    $.ajax({
        type: "POST",
        async: false,
        url: "/Client/DeleteClientRecord",
        dataType: "json",
        error: function (request) {
            alert(request.responseText);
            event.preventDefault();
        },
        success: function (result) {
            // if error from webservice I want to differentiate here somehow …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net asp.net-mvc jquery asp.net-mvc-4

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

为什么我的剃刀助手不在 Using 语句中执行?

这个观点:

@Using Html.BeginForm
    SimpleMessage
End Using

@Helper SimpleMessage()
    @<p>This is a simple message</p>
End Helper
Run Code Online (Sandbox Code Playgroud)

结果是

<form action="/Controller/Action" method="post"></form>
Run Code Online (Sandbox Code Playgroud)

@* Now let's not call it from within a using *@
@SimpleMessage

@Helper SimpleMessage()
    @<p>This is a simple message</p>
End Helper
Run Code Online (Sandbox Code Playgroud)

结果是

<p>This is a simple message</p>
Run Code Online (Sandbox Code Playgroud)

为什么我的助手在我的Using Html.BeginForm?

vb.net asp.net-mvc razor asp.net-mvc-3

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

如何在ASP.NET MVC中允许/ Controller/Id?

我想访问这个网址

/thread/123
Run Code Online (Sandbox Code Playgroud)

123线程在哪里id.

我无法弄清楚如何设置我的路线或它是什么.

我想添加thread到我的HomeController,但它似乎只有我去的时候才有效/home/thread.

如何设置此项目以使URL /thread/123可以正常工作?

我尝试/thread作为一个控制器,但似乎它认为123是一个Action方法,另一个尝试有线程在Home而不是root.

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

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

如何根据条件阻止执行控制器动作?

我有一个控制器有很多动作.我需要根据这个条件阻止执行某些操作:

if (Session["MyObject"] == null) return RedirectToAction("Introduction");
Run Code Online (Sandbox Code Playgroud)

它应该重定向到默认的"简介"操作.

我可以在每个动作中加入这个条件,但是我想在一个地方定义这个条件,就像在控制器的构造函数中一样.

有任何想法吗?谢谢.

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

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

Html.BeginForm里面的Html.BeginForm MVC3

我有一个主视图,呈现两个部分视图.主视图包含表单内的两个部分视图.每个部分视图也包含表单.所有3个视图共享相同的viewmodel.我想要做的是使用主视图封装来自所有视图的数据,并使用部分视图运行特定的Controller动作结果.

我想知道这是否可能.在调试时,我看到我的内容总是发布到主视图表单的HTTPPost.我已相应地为每个表单提交了按钮.对不起代码发布,它的全部拆分.

主要观点:

@using (Html.BeginForm("Main", "Registration", FormMethod.Post, 
    new { @class="mainform" }))
{
    <form>
        <fieldset>
            <div id ="option1" class="conglomerate">
                @Html.Partial("_GetBusiness")
            </div> 
            <div id ="option2" class="dealership">
                @Html.Partial("_GetLocation")
            </div>
            <button type="submit" value="Create" class="buttonBlue" id="">
                <span>Create a new dealer</span>
            </button>
         </fieldset>
    </form>
Run Code Online (Sandbox Code Playgroud)

部分1

@using (Html.BeginForm("CreateBusiness", "Business", FormMethod.Post, 
        new { @class="buisinessform" }))
{
    <form>
        <div class="editor-field">
            @Html.DropDownListFor(m =>m.BusinessId, new SelectList(Model.Businesses, 
                "BusinessId", "BusinessName"), "")
        </div>
        <label>Your company not listed? Register yours below:</label>
        <div class="editor-label">
            @Html.LabelFor(model => model.BusinessName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.BusinessName)
            @Html.ValidationMessageFor(model => model.BusinessName) …
Run Code Online (Sandbox Code Playgroud)

html asp.net-mvc razor asp.net-mvc-3

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

仅限网站上的控制器操作

是否可以将我的操作方法的控制器操作访问限制为仅限AJAX的请求?

我的意思是非Ajax请求操作它将被重定向到404或抛出错误.如果JS在我自己的页面上发出请求,则Action仅返回正确的结果.

我试着谷歌,但没有找到答案.我了解到我可以为此目的实现自定义过滤器,但是它可能已经存在于MVC中了吗?

谢谢.

javascript asp.net ajax asp.net-mvc jquery

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

ASP.Net MVC4自定义路由

我目前正试图弄清楚如何更改我的博客网址规则.

现在URL是/ Blog/Details/1但我读到这是一个更好的SEO练习来制作URL /Blog/Details/Post-Title.我在我的博客数据库中创建了一个额外的字段,标记为FriendlyUrl,当我创建一个博客条目时,我用破折号( - )替换空格,但现在我不知道如何使我的应用程序正常工作.

我被告知要查看我的global.asx.cs,但这就是我的样子.

public class MvcApplication : HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的控制器代码的详细信息

public ActionResult Details(int id = 0)
    {
        Blog blog = _db.Blogs.Find(id);
        if (blog == null)
        {
            return HttpNotFound();
        }
        return View(blog);
    }
Run Code Online (Sandbox Code Playgroud)

这是当前用于链接到博客条目的链接.

<a href="@Url.Action("Details", "Blog", new { id=item.Id})">@Html.DisplayFor(modelItem => item.Title)</a>
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

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

具有不同参数类型的MVC3路由

我很难在MVC3中解决路由问题.

以前我一般只是避开整个区域,并坚持丑陋的老式?id=1&foo=bar网址.不太好.

我这样定义了4条路线

routes.MapRoute("Blog", "{controller}/{action}/{PageNumber}/{PostsPerPage}", new { controller = "blog", action = "list", PageNumber = UrlParameter.Optional, PostsPerPage = UrlParameter.Optional });
routes.MapRoute("Code", "{controller}/{action}/{title}", new { });
routes.MapRoute("Id", "{controller}/{action}/{id}", new { });
routes.MapRoute("Default", "{controller}/{action}", new { controller = "home", action = "index" });
Run Code Online (Sandbox Code Playgroud)

我试图从最具体到最少的顺序排序.

第一个"博客"路线工作正常,我可以使用类似的URL /blog/list/2/5,它正确映射到我的控制器.

底部的默认路线也正如我所料.

但是如果我有这样的动作方法:

public ActionResult BarX(int id)
{
    //some stuff
}

public ActionResult BarY(string title)
{
    //some stuff
}
Run Code Online (Sandbox Code Playgroud)

我希望它使用第三条路线并生成一个类似的URL /foo/barX/3.

但是,如果我使用

@Html.ActionLink("TEST1", "barX", "foo", new { id = 3 }, null)
Run Code Online (Sandbox Code Playgroud)

生成的URL是 …

asp.net asp.net-mvc routes asp.net-mvc-routing asp.net-mvc-3

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