คำถามติดแท็ก html-helper

อ้างถึงคลาส "HtmlHelper" สำหรับมุมมอง ASP.NET MVC

10
วิธี HTML.ActionLink
สมมติว่าฉันมีชั้นเรียน public class ItemController:Controller { public ActionResult Login(int id) { return View("Hi", id); } } ในหน้าเว็บที่ไม่ได้อยู่ที่โฟลเดอร์รายการที่ItemControllerอยู่ฉันต้องการสร้างลิงค์ไปยังLoginวิธีการ ดังนั้นHtml.ActionLinkฉันควรใช้วิธีใดและฉันควรผ่านพารามิเตอร์ใด โดยเฉพาะฉันกำลังมองหาวิธีการเปลี่ยน Html.ActionLink(article.Title, new { controller = "Articles", action = "Details", id = article.ArticleID }) ที่ถูกยกเลิกในการแปลง MVC แบบ ASP.NET ล่าสุด


12
วิธีการตั้งค่าเริ่มต้นด้วย Html.TextBoxFor?
คำถามง่ายๆถ้าคุณใช้ Html Helper จาก ASP.NET MVC Framework ที่ 1 Html.TextBox(string name, object value)มันเป็นเรื่องง่ายที่จะตั้งค่าเริ่มต้นในช่องเพราะมีเกิน เมื่อฉันลองใช้วิธีHtml.TextBoxForการคาดเดาครั้งแรกของฉันคือลองทำสิ่งต่อไปนี้ซึ่งใช้งานไม่ได้: <%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %> ฉันควรจะติดกับ Html.TextBox (สตริงวัตถุ) ตอนนี้หรือไม่

2
ฉันจะเพิ่ม class class ให้กับองค์ประกอบ HTML ที่สร้างโดยผู้ช่วย HTML ของ MVC ได้อย่างไร
ASP.NET MVC สามารถสร้างองค์ประกอบ HTML ใช้ HTML ช่วยยกตัวอย่างเช่น@Html.ActionLink(), @Html.BeginForm()และอื่น ๆ ฉันรู้ว่าฉันสามารถระบุแอตทริบิวต์แบบฟอร์มโดยการสร้างวัตถุที่ไม่ระบุชื่อและส่งผ่านวัตถุนั้นสำหรับhtmlAttributesพารามิเตอร์(ที่สี่ในกรณีนี้) ที่ระบุidสำหรับองค์ประกอบ: Html.BeginForm("Foo", "Bar", FormMethod.Post, new { id = "MyForm"}) แต่สิ่งที่เกี่ยวกับclassคุณลักษณะหรือไม่ เห็นได้ชัดว่านี่ไม่ได้ผล: Html.BeginForm("Foo", "Bar", FormMethod.Post, new { class = "myclass"}) classในฐานะที่เพิ่งโยนข้อผิดพลาดไวยากรณ์สุ่มเมื่อมุมมองของฉันมีการร้องขอเพราะคาดว่าอย่างอื่นหลังจากเผชิญหน้ากับคำหลัก C # ฉันยังลอง: new { _class = "myclass"} และ new { class_ = "myclass"} แต่พวกเขายังไม่ได้ทำงานเป็นขีดได้รับการแทนที่ด้วยรอยขีดข่วน ฉันรู้ว่าฉันสามารถเขียนองค์ประกอบ HTML ด้วยมือหรือห่อแบบฟอร์มไว้ใน a <div …

3
สร้าง URL ในตัวช่วย HTML
โดยปกติในมุมมอง ASP.NET หนึ่งสามารถใช้ฟังก์ชั่นต่อไปนี้เพื่อรับ URL (ไม่ใช่<a>): Url.Action("Action", "Controller"); อย่างไรก็ตามฉันไม่สามารถหาวิธีทำได้จากตัวช่วย HTML ที่กำหนดเอง ฉันมี public class MyCustomHelper { public static string ExtensionMethod(this HtmlHelper helper) { } } ตัวแปรตัวช่วยมีเมธอด Action และ GenerateLink แต่สร้างขึ้น<a>มา ฉันทำการขุดในซอร์สโค้ด ASP.NET MVC แต่ฉันไม่สามารถหาวิธีที่ตรงไปตรงมา ปัญหาคือ Url ด้านบนเป็นสมาชิกของคลาสมุมมองและสำหรับอินสแตนซ์ของมันต้องการบริบทบางอย่างและแผนที่เส้นทาง (ซึ่งฉันไม่ต้องการที่จะจัดการกับและฉันไม่ควรจะอยู่แล้ว) หรืออีกทางหนึ่งอินสแตนซ์ของคลาส HtmlHelper ก็มีบริบทบางอย่างที่ฉันถือว่าเป็นส่วนหนึ่งของชุดย่อยของข้อมูลบริบทของอินสแตนซ์ Url (แต่ฉันไม่ต้องการจัดการกับมันอีก) โดยสรุปฉันคิดว่ามันเป็นไปได้ แต่เนื่องจากฉันเห็นทุกอย่างเกี่ยวข้องกับการจัดการบางอย่างกับสิ่ง ASP.NET ภายในบางอย่างมากขึ้นฉันสงสัยว่ามีวิธีที่ดีกว่านี้หรือไม่ แก้ไข:ตัวอย่างเช่นความเป็นไปได้หนึ่งอย่างที่ฉันเห็นคือ: public class MyCustomHelper …

8
Razor HtmlHelper Extensions (หรือเนมสเปซอื่นสำหรับมุมมอง) ไม่พบ
Dunno หากสิ่งนี้เกิดขึ้นใน PR หรือเบต้า แต่ถ้าฉันสร้างวิธีการต่อขยายHtmlHelperมันจะไม่ได้รับการยอมรับในหน้ามีดโกนที่ใช้พลังงาน: namespace SomeNamespace.Extensions { public static class HtmlExtensions { public static string Foo(this HtmlHelper html) { return "Foo"; } } } ฉันเพิ่มลงใน<Namespaces>ส่วนในWeb.config: <pages> <namespaces> <add namespace="System.Web.Mvc" /> <!-- snip --> <add namespace="SomeNamespace.Extensions"/> </namespaces> </pages> แต่จะมีข้อผิดพลาดในการคอมไพล์เมื่อพยายามดูหน้า: @Html.Foo() หากฉันสร้างหน้าขึ้นใหม่ด้วยWebFormsก็ใช้งานได้ดี ตกลงคืออะไร? วิธีแก้ปัญหา หากฉันรวม@using SomeNamespace.Extensionsไว้ในมุมมองมีดโกนของฉันแล้วก็ใช้งานได้ แต่ฉันก็อยากจะลองใช้ดูWeb.config

8
ตัวช่วย HTML สำหรับ <input type =“ file” />
มีHTMLHelperไฟล์สำหรับอัพโหลดหรือไม่? โดยเฉพาะฉันกำลังมองหาการแทนที่ของ &lt;input type="file"/&gt; โดยใช้ ASP.NET MVC HTMLHelper หรือถ้าฉันใช้ using (Html.BeginForm()) การควบคุม HTML สำหรับการอัปโหลดไฟล์คืออะไร?

4
อะไรคือความแตกต่างระหว่าง RouteLink และ ActionLink ใน ASP.NET MVC?
ฉันคิดว่าชื่อนี้สรุปได้ค่อนข้างดี: อะไรคือความแตกต่างระหว่างRouteLink()และActionLink()ใน ASP.NET MVC? เช่นคุณใช้Html.RouteLink()เมื่อใดและคุณใช้เมื่อใดHtml.ActionLink()ใน View ของคุณ?

1
คุณจะบอก Resharper ได้อย่างไรว่าพารามิเตอร์เมธอดคือสตริงที่มีคลาส CSS
[เปิดใช้งาน intellisense บนแอตทริบิวต์ HTMLHelper สำหรับคลาส css] ฉันมี HTMLhelper นี้: public IHtmlString MyTextBoxFor&lt;TModel, TProperty&gt;( this HtmlHelper&lt;TModel&gt; html, Expression&lt;Func&lt;TModel, TProperty&gt;&gt; propertyExpression, string cssClass) { // ... } ฉันต้องการให้ Resharper ให้ IntelliSense สำหรับคลาส CSS ที่กำหนดไว้ในแอปพลิเคชันของฉันเมื่อส่งผ่านค่าสำหรับพารามิเตอร์ "cssClass" มีแอตทริบิวต์คำอธิบายประกอบโค้ดบางอย่างที่ Resharper รู้จัก แต่ไม่มีอะไรที่เกี่ยวข้องโดยตรงกับการทำเครื่องหมายพารามิเตอร์เมธอดว่าเป็นคลาส CSS ที่ใกล้เคียงที่สุดที่ฉันสามารถหาเป็น[HtmlAttributeValue (ชื่อสตริง)] ฉันพยายามใช้กับพารามิเตอร์ cssClass ดังนี้: public IHtmlString MyTextBoxFor&lt;TModel, TProperty&gt;( this HtmlHelper&lt;TModel&gt; html, …

7
วิธีสร้างกล่องข้อความแบบอ่านอย่างเดียวใน ASP.NET MVC3 Razor
ฉันจะสร้างกล่องข้อความแบบอ่านอย่างเดียวใน ASP.NET MVC3 ด้วย Razor view engine ได้อย่างไร มีวิธี HTMLHelper ที่สามารถทำได้หรือไม่? สิ่งต่อไปนี้? @Html.ReadOnlyTextBoxFor(m =&gt; m.userCode)

4
Html.HiddenFor ทำอะไร?
แม้ว่าฉันจะอ่านเอกสารเกี่ยวกับ Html.HiddenFor แต่ฉันไม่เข้าใจว่ามันใช้สำหรับอะไร ... ใครช่วยอธิบายการใช้งานและยกตัวอย่างสั้น ๆ ได้ไหม ตัวช่วยเหล่านั้นควรอยู่ที่ไหนในรหัส?

7
ฉันจะใช้คลาส CSS กับ Html.ActionLink ใน ASP.NET MVC ได้อย่างไร
ฉันกำลังสร้างแอปพลิเคชั่นASP.NET MVCโดยใช้VB.NETและฉันกำลังพยายามใช้คลาส css กับHtml.ActionLinkโค้ด: &lt;%=Html.ActionLink("Home", "Index", "Home", new {@class = "tab" })%&gt; แต่เมื่อฉันเรียกใช้รหัสฉันได้รับข้อผิดพลาดด้านล่าง: ข้อความแสดงข้อผิดพลาดของคอมไพเลอร์: BC30988: คาดว่าจะพิมพ์หรือ "ด้วย" ฉันยังใหม่กับMVCและไม่ค่อยมีเงื่อนงำว่าฉันกำลังทำอะไรอยู่ดังนั้นฉันจึงไม่เห็นว่ามีอะไรผิดปกติเนื่องจากฉันใช้รหัสจากตัวอย่างที่อื่น

11
ASP.NET MVC 3: แทนที่แอตทริบิวต์ "name" ด้วย TextBoxFor
เป็นไปได้ไหมเมื่อใช้Html.TextBoxForเพื่อแทนที่แอตทริบิวต์ name ฉันพยายามแล้วไม่ประสบความสำเร็จ ฉันจำเป็นต้องใช้ TextBoxFor เพื่อให้การตรวจสอบฝั่งไคลเอ็นต์ทำงานได้อย่างไรก็ตามด้วยเหตุผลที่ฉันจะไม่เข้าไปฉันต้องการให้ชื่อของกล่องข้อความแตกต่างจากที่สร้างขึ้น ฉันได้ลองทำสิ่งต่อไปนี้แล้ว: @Html.TextBoxFor(x =&gt; x.Data, new { name = Model.Key + "_Data", id = Model.Key + "_Data" }) ซึ่งใช้ได้กับ ID แต่ไม่ใช่ชื่อ เป็นไปได้หรือไม่ อัปเดต : ค้นหารหัสสำหรับ TextBoxFor ดูเหมือนจะไม่มีวิธีง่ายๆ หวังว่าจะมีคนพิสูจน์ได้ว่าฉันผิด

5
จะเปลี่ยนชื่อที่แสดงสำหรับ LabelFor ในมีดโกนใน mvc3 ได้อย่างไร?
ในเครื่องมือมีดโกนฉันใช้LabelForวิธีผู้ช่วยในการแสดงชื่อ แต่ดูเหมือนว่าชื่อที่แสดงจะแสดงได้ไม่ดีนัก ต้องเปลี่ยนชื่อที่แสดงต้องทำยังไง .... @Html.LabelFor(model =&gt; model.SomekingStatus, new { @class = "control-label"})
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.