我有一本书中的简单代码,代码应该在“结果”范围内显示来自我的控制器的数据。我错过了什么?
...控制器
public string GetQuote(string symbol)
{
if (symbol.Trim() != "")
return "99";
else
return "Sorry";
}
... ASPX
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Index</h2>
<%using (Html.BeginForm("GetQuote","Stocks", new { id = "quoteForm" })) { %>
Symbol:
<%= Html.TextBox("symbol") %>
<input type="submit" />
<span id="results"></span>
<% } %>
<p><i><%=DateTime.Now.ToLongTimeString() %></i></p>
<script type="text/javascript">
$("form[action~='GetQuote']").submit(function() {
$.post($(this).attr("action"), $(this).serialize(), function(response) {
$("#results").html(response);
});
return false;
});
</script>
答案 0 :(得分:2)
您的选择器仅匹配<form>
参数结尾的action
元素 GetQuote
。
您需要将其更改为form[action~='GetQuote']
,以匹配<form>
参数包含 action
的{{1}}元素。
或者,您可以在表单中添加ID,如下所示:
GetQuote
并将选择器更改为using (Html.BeginForm("GetQuote","Stocks", new { id = "quoteForm" }))
。
答案 1 :(得分:0)
虽然SLaks的回答确实让我朝着正确的方向前进......但我错过了DOM调用......
$(document).ready(function() {
$("form[action$='GetQuote']").submit(function() {
...
});