簡體   English   中英

ASP.NET MVC和Javascript / jQuery的設置?

[英]Setup for ASP.NET MVC and Javascript / jQuery?

我的JavaScript無法運行。 我一直在努力解決這個問題(2天)這是我目前的設置:

創建了一個新的MVC 4項目。 我打算嘗試一些AJAX,所以將它命名為AjaxTest。 添加了一個由OdometerInfo,VehicleMinInfo和Vehicle三個類組成的模型(Vehicle.cs)。 他們來了:

public class OdometerInfo
{
    public virtual string VIN { get; set;  }
    public virtual int Odometer { get; set; }
}

public class VehicleMinInfo : OdometerInfo
{
    public virtual Nullable<int> VehicleYear { get; set; }
    public virtual string Make { get; set; }
    public virtual string Model { get; set; }
}

public class Vehicle : VehicleMinInfo
{
    // default constructor
    public Vehicle()
    {
        VIN = "MyFakeVin";
        Odometer = 0;
        VehicleYear = 2012;
        Make = "Porsche";
        Model = "911";
    }

    public override string VIN { get; set; }
    public override int Odometer { get; set; }

    public override Nullable<int> VehicleYear { get; set; }
    public override string Make { get; set; }
    public override string Model { get; set; }

    // other fields
}

然后我將模板Index.cshtml的內容替換為:

@model AjaxTest.Models.VehicleMinInfo

@{
    ViewBag.Title = "Index";
}

<h2>Enter your odometer reading</h2>

@using (Html.BeginForm("Odometer", "Home", FormMethod.Post))
{
    <h4>For the following vehicle.</h4>
    @Html.DisplayFor(model => model.VIN) <br />
    @Html.DisplayFor(model => model.VehicleYear) <br />
    @Html.DisplayFor(model => model.Make) <br />
    @Html.DisplayFor(model => model.Model) <br />
    <h1>Enter Odometer</h1>
    @Html.DisplayNameFor(model => model.Odometer)
    @Html.EditorFor(model => model.Odometer)
    @Html.HiddenFor(model => model.VIN);
    <input type="submit" value="Odometer reading is correct" id="OdometerForm" />
}

然后我做了一個強類型視圖(Odometer.cshtml):

@model AjaxTest.Models.OdometerInfo
@{
    ViewBag.Title = "Odometer";
}

<h2>Odometer</h2>
Your odometer has been entered. It is
@Html.DisplayFor(model => model.Odometer)
. (
@Html.DisplayFor(model => model.VIN)
)

並添加到控制器:

    public ActionResult Index()
    {
        VehicleMinInfo OdomObj = new Vehicle();
        return View(OdomObj);
    }

    [HttpPost]
    public ActionResult Odometer(OdometerInfo oi)
    {
        return View(oi);
    }

所有這些都有效。 我可以填寫里程表讀數,里程表和VIN都會傳回控制器並顯示在里程表頁面上。 現在,是時候開始添加一些JavaScript了。 所以我創建了OdometerList.js,最終的目標是傳回一個里程表讀數列表,而不僅僅是一個,在其中我放置:

$("#OdometerForm").click(function () {
    alert("Hello world!");
});

window.onload = function () {
    if (window.jQuery) {
        // jQuery is loaded  
        alert("Yeah!");
    } else {
        // jQuery is not loaded
        alert("Doesn't Work");
    }
}

$(document).ready(function () {
    alert("!!!");
});

然后我在_Layout.cshtml中添加了

@Scripts.Render("~/Scripts/jquery-1.3.2.min.js")
@Scripts.Render("~/Scripts/OdometerList.js")

我仔細檢查了Web.config以確保編譯調試是真的:

<system.web>
    <compilation debug="true" targetFramework="4.5" />
    ...

我的所有警報都沒有被觸發,而不是一個。 我的設置錯了嗎? 我將我的JavaScript從OdometerList.js移到Odometer.cshtml的底部,並將它全部放在腳本標簽之間,但沒有任何變化。 我是JavaScript的新手,所以我在那里犯了錯誤嗎?

這真的讓我很難過。 您將給予的任何幫助將不勝感激!

jQuery的版本已更新。 一旦我輸入正確的版本號,我就可以使用@ Scripts.Render(“〜/ Scripts / jquery-1.8.2.min.js”),一切正常!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM