MVC2中有可能創建一個包含ViewData值的定位標記嗎?在MVC2中創建一個mailto定位標記
例如
<a href="mailto:<%: ViewData["Email"] %>">Send Email</a>
上面的代碼不渲染,只是引發異常?
MVC2中有可能創建一個包含ViewData值的定位標記嗎?在MVC2中創建一個mailto定位標記
例如
<a href="mailto:<%: ViewData["Email"] %>">Send Email</a>
上面的代碼不渲染,只是引發異常?
這裏的答案是不是有多達複雜會認爲..它只是一個引號(「)問題:
試着改變你的外引號單引號。當你使用它終止字符串」引號您的標記以及[「電子郵件」] ... :)
<a href='mailto:<%: ViewData["Email"] %>'>Send Email</a>
謝謝Yngve B. Nilsen:你真的看過這個問題! 這不是模型的一部分(當然,但那不相關) - 它創建一個可點擊的鏈接,當服務器沒有SMTP時,會彈出用戶端的電子郵件。 我的錯誤是當我使用單引號時,intellisense似乎不起作用。我現在意識到,它將其編碼爲鏈接而不是代碼。 – BlueChippy 2010-10-18 13:04:16
不客氣..閱讀這個問題往往是答案的關鍵;) – 2010-10-18 13:29:26
是的。
此外,如果您使用Display Html擴展和關聯的ViewModel,默認模板將完全按照您所寫的方式呈現該字段。只是裝飾領域中使用正確的數據類型的模型屬性
[DataType(DataType.EmailAddress)]
public string EmailAddress { get; set; }
請參閱this post系列進一步信息。
編輯:
假設你有以下視圖模型
public class CustomerModel {
public string CustomerName { get; set; }
[DataType(DataType.EmailAddress)]
public string EmailAddress { get; set; }
}
和你的控制器內的下列行動
[HttpGet]
public ActionResult ViewCustomer(int id) {
CustomerModel cm = LoadCustomerByID(id);
return View(cm);
}
,你可以有一個名爲Viewcustomer.aspx認爲是強類型到CustomerModel的一個實例,只是在視圖中有這個代碼
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyApp.CustomerModel>" %>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<%= Html.DisplayForModel() %>
</asp:Content>
請喝杯咖啡,花些時間閱讀該文章系列。這很容易,可以解決的問題比我在這篇小文章中寫的更多。 ;)
希望它有幫助!
你能指點我嗎?我想添加更多的電子郵件地址到「mailto」鏈接,但我無法讓它工作! – BlueChippy 2010-10-18 12:32:35
@BlueChippy:看看我的帖子編輯 – Lorenzo 2010-10-18 12:50:06
爲什麼不是這樣? :) – bzlm 2010-10-18 12:19:33
@bzlm:...因爲我上面貼的代碼沒有渲染! – BlueChippy 2010-10-18 12:31:40
你的意思是'<%: ... %>'的一部分?這聽起來更像是您的ViewData中沒有電子郵件條目。也許你應該嘗試與View Models合作? – bzlm 2010-10-18 12:32:58