2013-05-19 70 views
-5

如何在ASP.NET MVC4中分割單詞?如何在ASP.NET MVC4中分割單詞?

這就是我嘗試到目前爲止。

public ActionResult Index() 
     { 
      var aaa = System.Text.RegularExpressions.Regex.Split("12:::34:::55", ":::"); 

      ViewBag.test = aaa; 
      return View(); 
     } 

但頁面顯示System.String[]

+0

您的代碼工作正常,並返回一個字符串數組,你要什麼有什麼關係呢? – I4V

+0

請發佈通訊員的視圖代碼' – oleksii

+4

'string.Split'就夠了 - 這裏不需要正則表達式。 – Oded

回答

1

您正在看到一個數組的string表示形式。

要顯示的元素,使用string.Join

ViewBag.test = string.Join(",", //insert separator here 
          aaa); 

這將返回"12,34,55"

如果要分隔線路,請將","替換爲Environment.NewLine。您也可以使用" "或您選擇的其他分隔符。

1

這將分割你的字符串,並返回一個數組,像這樣:

public ActionResult Index() 
{ 
    string[] elements = string.Split("12:::34:::55", ":::"); 

    ViewBag.test = elements; 
    return View(); 
} 

編輯

這裏是你通過視圖中的元素是如何遍歷:

@foreach (string element in ViewBag.test) 
{ 
    <span>@element</span> 
    // or other things ... 
} 
1

迭代在您的視圖中通過ViewBag.test。

+0

通常,我儘可能簡化我的觀點,並嘗試消除那裏的環路和條件 –

+0

那麼問題是什麼? 'string.Split'是分離單詞的方式(在這種情況下)。 –

+0

你不應該關心循環。如果你想生成HTML或換行符並將其分配給Viewbag.test,那就更糟了。 –

0

在你看來,你應該遍歷所有的值:

@foreach (string item in ViewBag.test) 
{ 
    <p>@item</p> 
} 
-1

你剛纔在這種情況下,返回字符串數組用於Split("x:::y:::z",":::")所以它顯示你的消息System.String[]

,如果你想在字符串數組提到它作爲

string s = "x:::y:::z"; 
string[] Splittedwords=s.Split(new string[] { ":::" }, System.StringSplitOptions.None); 

否則,如果你只想要從它的第一個,你可以使用

var x = s.Split(new string[] { ":::" }, System.StringSplitOptions.None)[0]; 

這裏[0]代表先拆給你X,[1]給你年。

現在您可以給ViewBag.test = Splittedwords;傳遞給視圖。
否則ViewBag.test = x;傳遞單個字符。

注:記得查看您必須執行強制類型轉換,否則您將繼續得到同樣的錯誤