[英]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.