我有這樣的控制器:如何從控制器傳遞一個字符串在ASP.NET查看MVC5
public ActionResult MyController(string myString)
{
return View((object)myString);
}
我試圖傳遞字符串來查看這樣的:
@model string
@Html.EditorFor(m => m)
我獲取值不能爲空錯誤。我怎樣才能解決這個問題?謝謝。
我有這樣的控制器:如何從控制器傳遞一個字符串在ASP.NET查看MVC5
public ActionResult MyController(string myString)
{
return View((object)myString);
}
我試圖傳遞字符串來查看這樣的:
@model string
@Html.EditorFor(m => m)
我獲取值不能爲空錯誤。我怎樣才能解決這個問題?謝謝。
此外,您可以通過ViewBag,ViewData,TempData全部使用不同的信息生命週期將信息傳遞給您的視圖。
檢查: http://royalarun.blogspot.com.ar/2013/08/viewbag-viewdata-tempdata-and-view.html
你的榜樣模型與詞典相關的,所以你不能直接使用這樣的屬性。
爲了您的例子,只是傳遞只能從控制器的字符串,你可以做任何這樣的: 公衆的ActionResult myController的(字符串MyString的) { 返回查看(型號:myString的);
}
,並在.cshtml(如果使用C#)
@model string
@{
var text = Model;
}
@Html.EditorFor(m => text);
但我認爲這是一個更好的解決方案傳遞viewMoedel有一個字符串屬性,如@Stephen Muecke響應Prefill Html Editor Asp.net MVC
錯誤 - 它確實需要被轉換爲'object'(其他方式如果在參數是視圖名稱的情況下會調用超載) –
是的你是對的,但在示例中我使用了模型參數聲明,再看一次:) @斯蒂芬Muecke –
這很好,但你的第一個陳述是錯誤的和誤導(OP的使用很好)! –
首先,我會建議更改您的Action方法名稱。爲什麼你把它命名爲MyController。它應該是一個有意義的方法名稱。
然後來到你的問題。如果您的視圖僅用於展示目的,而不是表單發佈,那麼您可以將您的字符串綁定到viewbag
並在視圖中呈現。
例如,在你的操作方法,
ViewBag.MyString = myString;
而且在你看來,
<p>@ViewBag.MyString</p>
但是,如果你要編輯字符串中視圖和後點擊提交按鈕,它應該值發佈到服務器,然後創建一個view model
,例如,
public class MyStringModel
{
public string MyString { get; set; }
}
在你的行動方法,
public ActionResult MyController(string myString)
{
MyStringModel = new MyStringModel();
MyStringModel.MyString = myString;
return View(MyStringModel)
}
在你看來
然後,
@model MyStringModel
@Html.EditorFor(m => m.MyString)
看,你需要在你的視圖中添加@HTML.BeginForm
和submit button
到post back
您的字符串數據。
希望它有幫助。
請參閱[這個問題/答案](http://stackoverflow.com/questions/43309582/prefill-html-editor-asp-net-mvc)如何處理這個問題。 –